我使用jQuery Validation Engine进行表单验证,这里是demo的链接: https://github.com/posabsolute/jQuery-Validation-Engine
我在ASP.NET中有一个复选框和四个文本框,我想验证如果选中该复选框,则必须填写四个文本框,否则它将显示“请填写框”的错误消息。
到目前为止,我已经尝试过,但没有奏效。 任何帮助将不胜感激。
<script type="text/javascript">
function checkBox() {
var check = document.getElementById("CheckBox1");
var tb1 = document.getelementbyid('iBox1');
var tb2 = document.getelementbyid('iBox2');
var tb3 = document.getelementbyid('iBox3');
var tb4 = document.getelementbyid('iBox4');
if (check.checked && tb1 == null && tb2 == null && tb3 == null && tb4 == null) {
alert("checkbox checked");
jQuery("#form1").validationEngine({
'custom_error_messages': {
'#iBox1': {
'required': {
'message': "write at least four characters in Name"
}
}
}
});
}
else {
alert("unchecked");
}
}
$(document).ready(function () {
$("#form1").validationEngine();
});
</script>
<form runat="server" id="form1">
<div>
<asp:CheckBox runat="server" ID="CheckBox1" onclick="checkBox()"></asp:CheckBox>
<asp:TextBox runat="server" ID="iBox1" MaxLength="1" size="1">/asp:TextBox>
<asp:TextBox runat="server" ID="iBox2" MaxLength="1" size="1"></asp:TextBox>
<asp:TextBox runat="server" ID="iBox3" MaxLength="1" size="1"></asp:TextBox>
<asp:TextBox runat="server" ID="iBox4" MaxLength="1" size="1"></asp:TextBox>
</div>
</form>
答案 0 :(得分:0)
看起来您的问题是在客户端生成asp.net控件ID这一事实,因此您无法在脚本中真正引用它们。虽然它们可以通过ClientID获得,并且由于您的脚本似乎是在aspx页面上定义而不是在单独的js文件中定义,因此最简单的方法是:
var check = document.getElementById('<%= CheckBox1.ClientID %>');
同样适用于文本框。