Использовать пользовательские правила в механизме проверки jQuery?

Я использую jQuery Validation Engine для проверки формы, вот ссылка для демонстрации: 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>

person Rex Jones    schedule 30.07.2016    source источник


Ответы (1)


Похоже, ваша проблема связана с тем, что идентификаторы элементов управления asp.net генерируются на стороне клиента, поэтому вы не можете ссылаться на них, как в своем сценарии. Однако они доступны через ClientID, и, поскольку ваш скрипт определен на странице aspx, а не в отдельном файле js, вам проще всего сделать следующее:

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

Аналогично для текстовых полей.

person Andrei    schedule 30.07.2016
comment
он не сработал или просто ничего не происходит при нажатии - person Rex Jones; 30.07.2016