javascript - <select> 为空/无选择或默认时显示错误消息

标签 javascript html jquery css

I'm trying to get an error message when select is set to default and nothing is selected.对于输入字段,代码有效,但我无法弄清楚选择部分哪里错了。有人帮我吗?
fiddle :https://jsfiddle.net/snake93/1sLtk2a7/2/

//Error Msg for input field
function validateForm() {
  let x = document.forms["myForm"]["fname"].value;
  if (x == "") {
alert("Name must be filled out");
return false;
  }
}
<input type="text" name="fname" form="myForm">
<select id="select-sex" form="myForm" name="radios"> 
 <option id="opt-default" form="myForm" selected>Select...</option>
 <option id="sexuomo" name="radios" value="Male" form="myForm">Uomo</option>
 <option id="sexdonna" name="radios" value="Female" form="myForm">Donna</option>
</select>


<button onclick="validateForm()">Submit</button>
<form name="myForm" id="myForm" onsubmit="return validateForm()" method="post">
</form>

最佳答案

只需重复您在 input 上使用的逻辑即可为 select :

//Error Msg for input field
function validateForm() {
  let x = document.forms["myForm"]["fname"].value;
  if (x == "") {
    alert("Name must be filled out");
    return false;
  }
  let y = document.forms["myForm"]["radios"].value;
  if (y == "Select...") {
    alert("Select must be filled out");
    return false;
  }
}
<input type="text" name="fname" form="myForm">
<select id="select-sex" form="myForm" name="radios">
  <option id="opt-default" form="myForm" selected>Select...</option>
  <option id="sexuomo" name="radios" value="Male" form="myForm">Uomo</option>
  <option id="sexdonna" name="radios" value="Female" form="myForm">Donna</option>
</select>


<button onclick="validateForm()">Submit</button>
<form name="myForm" id="myForm" onsubmit="return validateForm()" method="post">
</form>

但是,一个更具可扩展性的解决方案是添加 required字段到您的输入,然后使用 checkValidity() :

function validateForm(){
  const isValid = myForm.checkValidity();
  if(!isValid){
    alert("Please fill all fields");
  }
  return isValid;
}
<form name="myForm" id="myForm" onsubmit="return validateForm()" method="post" novalidate>
  <input type="text" name="fname" form="myForm" required>
  <select id="select-sex" form="myForm" name="radios" required>
    <option id="opt-default" value="" form="myForm" selected disabled>Select...</option>
    <option id="sexuomo" name="radios" value="Male" form="myForm">Uomo</option>
    <option id="sexdonna" name="radios" value="Female" form="myForm">Donna</option>
  </select>
  <button>Submit</button>
</form>

关于javascript - <select> 为空/无选择或默认时显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69508465/

相关文章:

Javascript 打印问题(IE | Iframe | PDF)

javascript - CodeWars/合并字符串检查器

javascript - 在网站上收听鼠标按住事件?

javascript - 在 CSS 中,是否可以定位由索引号标识的类属性?

javascript - (jQuery) 将 div 样式 "display:none"切换为 "display:inline"

当没有更多列表项时,Jquery 隐藏垂直滚动按钮

javascript - interact.js 拖动项目移动到顶部

javascript - nodejs等待函数执行

html - "Faking"带有 div 和 span 的表行?

javascript - jQuery:悬停时的淡入/淡出 - 移动设备上的替代方案?