在jQuery Validation Engine中使用自定义规则?

时间:2016-07-30 17:27:26

标签: jquery asp.net validation jquery-validation-engine

我使用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>

1 个答案:

答案 0 :(得分:0)

看起来您的问题是在客户端生成asp.net控件ID这一事实,因此您无法在脚本中真正引用它们。虽然它们可以通过ClientID获得,并且由于您的脚本似乎是在aspx页面上定义而不是在单独的js文件中定义,因此最简单的方法是:

var check = document.getElementById('<%= CheckBox1.ClientID %>');

同样适用于文本框。