Javascript在onclick上验证两个控件,但如果只有一个控件验证,则不保留值
Javascript validating two controls onclick but not retaining value if only one control validates
我正在通过一次onclick验证两个控件。这两种控制都是强制性的。
Onclick调用validateLocation函数,如果该函数有效,则调用validateForm函数。
我的问题:
如果用户选择了一个状态并单击提交,那么Javascript就会正常工作,非常完美。
但是
如果用户选择了一个研讨会位置,但没有状态,javascript将启动,但已对该位置进行的选择将被清除。我需要这个选择来保持选中状态,这样用户就不必重复点击。
我的问题:
如果只满足两个标准中的一个,我如何保留这些值?
以下代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script type ="text/javascript" language="javascript">
<!--
function validateLocation() {
var radios = document.getElementsByName('RadioGroup1')
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
validateForm();
return true;
}
};
// not checked, show error
document.getElementById('ValidationError').innerHTML = 'Required';
alert("Please select a seminar location");
return false;
}
function validateForm() {
if(document.form1.State.selectedIndex==0)
{
alert("Please select a State");
document.form1.State.focus();
return false;
}
return true;
};
-->
</script>
</head>
<body>
<div>
<form name="form1" onSubmit="return validateLocation();">
<div>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="text-align:right">state: </td>
<td>
<select name="State" id="State">
<option value="">Select</option>
<option value="AK">AK</option>
<option value="AL">AL</option>
<option value="AR">AR</option>
</select>
</td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><strong>Choose a seminar location</strong></td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="RadioGroup1" value="Fayetteville Senior Center" id="RadioGroup1_0">
</td>
<td><strong>Location One</strong></td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="RadioGroup1" value="Springdale Holiday Inn" id="RadioGroup1_1">
</td>
<td><strong>Location Two</strong></td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="RadioGroup1" value="The Riordan Hall" id="RadioGroup1_2">
</td>
<td><strong>Location Three</strong></td>
</tr>
</table>
<div id="ValidationError" name="ValidationError"></div>
</div>
<div>
<input type="submit" name="button" id="button" value="Submit">
</div>
</form>
</div>
</body>
</html>
我稍微修改了脚本,使其更符合逻辑:
<script type ="text/javascript" language="javascript">
function validateLocation() {
var radios = document.getElementsByName('RadioGroup1')
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
return true;
}
};
// not checked, show error
document.getElementById('ValidationError').innerHTML = 'Required';
alert("Please select a seminar location");
return false;
}
function validateState() {
if(document.form1.State.selectedIndex==0)
{
alert("Please select a State");
document.form1.State.focus();
return false;
}
return true;
}
function validateForm() {
if (!validateState() || !validateLocation()) return false;
return true;
};
</script>
您只需要将表单标记中的onSubmit处理程序更改为:
...onSubmit="return validateForm();"...
然后,表单将被验证,而不是提交,直到两次验证都成功。
希望能有所帮助,
欢呼,Daniel
相关文章:
- 如何在cakepp中使用javascript验证我的html表单控件
- ASP.net控件中的其他客户端验证
- 如何使用angular js验证器执行下拉控件验证
- TextBox自定义Web控件和JavaScript客户端验证
- 关闭已禁用表单控件的验证 角度
- 在 Web 浏览器中禁用 Javascript 应禁用服务器验证控件
- 在提交表单之前更改控件背景颜色,但如何在验证通过时重置颜色
- asp 文本框控件上的必填字段验证和当前日期验证
- 如何使用 JQuery 确定控件是否具有必填字段验证程序
- 我将 javascript 验证添加到我的登录控件中,尽管存在错误
- Javascript 验证控件
- 如何在checkboxlist控件的列表中获取值并使用它进行验证
- Javascript在onclick上验证两个控件,但如果只有一个控件验证,则不保留值
- 如何在JS中验证DateTime 4控件
- 如何使用jQuery只验证一个HTML控件
- 禁用隐藏面板中的asp验证控件
- 使用单独的控件验证日期和时间
- asp.net自定义控件验证在Firefox或Chrome中不起作用
- 禁用基于控件验证的按钮,其中ng重复angularjs
- UpdatePanel c# ASP.Net 内网格视图中的文本框控件验证