如何确保下拉字段是提交的必填输入字段
How to ensure that dropdown field is a mandatory input field for submission
任务:
创建一个有下拉列表的表单,下拉列表是用户在提交前必须选择的字段。
已经做了什么
创建了一个包含以下列表的下拉列表:名称1、名称2、名称3、其他。选择"其他"后,还有3个额外的必填字段需要在提交前回答。总之,所有字段都是强制性的。
我所做的就是强制增加这个字段。
问题:我已经设法使附加字段(只有当用户选择"其他"时才会显示附加字段(成为必填字段,但我似乎无法使下拉列表成为必填字段。因此,当用户从下拉列表中选择"名称a"时,当显示用户已选择"名称"选项时,它仍然会提示在其他字段中输入字段。
-名称A、名称B和名称C已经存储了名称信息,只有当用户选择这三个选项中的任何一个时,它才会反映名称。
因此,如何使下拉列表成为必填字段的一部分?因此,只有当用户尚未选择任何选项时,必填字段提示才会出现,但当用户选择了任何选项时不会显示?
代码:
<!-- Code that display fields when option has been selected: -->
<script>
function val(x) {
document.getElementById("extradiv").style.display = x == "Others" ? "block" : "none";
document.getElementById("Name1").style.display = x == "Name 1" ? "block" : "none";
document.getElementById("Name2").style.display = x == "Name 2" ? "block" : "none";
document.getElementById("Name3").style.display = x == "Name 3" ? "block" : "none";
}
</script>
<!-- Dropdown code -->
<p>
<select name ="Details" id="Details" class="defaultValue required" onchange = "return val(this.value);">
<option value ="0" selected = "selected"> Select Name..</option>
<option value ="Name 1"> Name1</option>
<option value ="Name 2"> Name2</option>
<option value ="Name 3"> Name3</option>
<option value = "Others"> Others</option>
</select>
</p>
<!-- Code for additional fields when user select "Others": -->
<div id = "extradiv" style ="display:none">
<p>
<input type="text" name="Name" id="Name" value="Name" title="Name" class="defaultValue required" tabindex="7" />
</p>
<p>
<input type="text" name="RegistrationNum" id="RegistrationNum" value="Registration Num" title="Registration Num" class="leftCol defaultValue required validateInput formatNumber" tabindex="8" />
</p>
<p>
<input type="text" name="Address" id="Address" value="Address" title="Address" class="defaultValue required signupinput_txt" tabindex="9" />
</p>
</div>
如果目标浏览器支持,则可以使用html5验证。
<select required>
<option value="">empty select value</option>
<option value="blabla">blabla</option>
</select>
你可以在这里查看浏览器支持:
http://caniuse.com/#search=validation
您可以使用jQuery Form validations Guide
例如,制作一个按钮并在单击时进行检查。
<script>
function formSubmit(){
if(document.getElementById('Details').value == 0){
alert('Select Any One');
document.getElementById('Details').focus();
}
else if(document.getElementById('Details').value== 'Others' && document.getElementById('othersTxt').value==''){
alert('fill the text box');
}
else {
document.getElementById('dropdownForm').submit();
}
}
</script>
<form id="dropdownForm">
<select name ="Details" id="Details" class="defaultValue required" onchange = "return val(this.value);">
<option value ="0" selected = "selected"> Select Name..</option>
<option value ="Name 1"> Name1</option>
<option value ="Name 2"> Name2</option>
<option value ="Name 3"> Name3</option>
<option value = "Others"> Others</option>
</select>
<input type="text" id="othersTxt">
<input type="button" value="Submit" onclick="formSubmit();">
</form>
检查是否选择了该选项,然后设置更多条件。
<script type="text/javascript">
if($("select[name='Details']").selectedIndex == 4)
{
//other conditions
alert('Last Element is selected, more info are required');
}
</script>
或
<script type="text/javascript">
if($("select[name='Details']").text == 'Others')
{
//some code
alert('more info');
}
</script>
编辑:也许你更喜欢这个:
<script type="text/javascript">
function checkForm() {
if((document.getElementById("Details")).selectedIndex == 0)
{
alert('This field is required');
return false;
}
if((document.getElementById("Details")).selectedIndex == 4)
{
//other conditions
if((document.getElementById("Name")).value == "Name"){
alert('Last Element is selected, more info are required');
return false;
}
}
return true
}
</script>
<form onsubmit="return checkForm()" method="post" action="#" enctype="multipart/form-data">
<select name ="Details" id="Details" class="defaultValue required">
<option value ="0"> Select Name..</option>
<option value ="Name 1"> Name1</option>
<option value ="Name 2"> Name2</option>
<option value ="Name 3"> Name3</option>
<option value = "Others"> Others</option>
</select>
<!-- Code for additional fields when user select "Others": -->
<div id = "extradiv">
<input type="text" name="Name" id="Name" value="Name" title="Name" class="defaultValue required" tabindex="7" />
</div>
<input type="submit" />
</form>
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 带有验证和隐藏字段值的提交按钮
- 添加和删除隐藏字段数组中的值,而不提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 检索要提交的字段的标记位置
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 角度,材料形式只说提交尝试后需要字段
- 提交表单时,显示或识别隐藏的必填字段并将其集中
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- ReactJS表单提交如何访问字段值
- 按enter键时,jQuery UI自动完成字段未提交
- 如何在表单提交后清除输入字段
- 如何防止某些形式's个字段无法提交
- Magento表单验证,表单提交时没有有效字段
- 获取所有输入字段并保留文本字段中的值,即使在使用 javascript 和 php 提交按钮后也是如此
- 为一个输入字段提交多个值
- 如何使用ajax和额外字段提交
- 不能用jquery标签输入样式字段提交表单数据
- HTML/CSS表单:通过必需字段提交的数据无效或输入