2015-07-29 5 views
0

Я дал подтверждения через jquery, который отлично работает при нажатии кнопки. Но как только я заполняю все данные на странице, мой onClick не срабатывает. Я не знаю, почему. Пожалуйста, предложите.OnClick не работает после проверки JQuery

Вот мой код JQuery: -

var ErrArr = []; 
    $(document).ready(function() { 
     $('#btnSave').click(function (e) { 
      e.preventDefault(); 
      validateTitle(); 
      validateddl(); 
      validateTextBoxes(); 
      if (ErrArr.length > 0) { 
       alert(ErrArr.join("\n")); 
       ErrArr = []; 
       return false; 
      } 
     }); 
     function validateTitle() { 
      if ($("#ddlTitle").val() > "0") { 
       if ($("#ddlTitle").val() == "1104" && $("#txtTitle").val() === "") { 
        ErrArr.push("Please enter the text in other title"); 
       } 
      } else { 
       ErrArr.push('Please select the title'); 
      } 
     } 
     function validateTextBoxes() { 
      if ($("#txt_emp_fname").val() === "") { 
       ErrArr.push('First name is required'); 
      } 
      if ($("#txt_emp_mname").val() === "") { 
       ErrArr.push('Middle name is required'); 
      } 
      if ($("#txt_emp_lname").val() === "") { 
       ErrArr.push('Last name is required'); 
      } 

      if ($("#txtDateofJoin").val() === "") { 
       ErrArr.push('Date of joining is required'); 
      } 
      if ($("#txtReligion").val() === "") { 
       ErrArr.push('Religion is required'); 
      } 
      if ($("#txtBloodGroup").val() === "") { 
       ErrArr.push('Blood group is required'); 
      } 
      if ($("#txtPersonalEmail").val() === "") { 
       ErrArr.push('Email Id is required'); 
      } 
      if ($("#txtDtOfBirth").val() === "") { 
       ErrArr.push('Date of birth is required'); 
      } 
      if ($("#txtAt").val() === "") { 
       ErrArr.push('Place of birth is required'); 
      } 
      if ($("#txtTaluka").val() === "") { 
       ErrArr.push('Taluka is required'); 
      } 
      if ($("#txtPostOffice").val() === "") { 
       ErrArr.push('Post office is required'); 
      } 
      if ($("#txtDistrict").val() === "") { 
       ErrArr.push('District is required'); 
      } 
      if ($("#txtStatePersonal").val() === "") { 
       ErrArr.push('State is required'); 
      } 
      if ($("#txtDtMarriage").val() === "") { 
       ErrArr.push('Date of Marriage is required'); 
      } 
      if ($("#TxtPassportNo").val() === "") { 
       ErrArr.push('Passport no is required'); 
      } 
      if ($("#txtIdMark").val() === "") { 
       ErrArr.push('Identification mark is required'); 
      } 
     } 
     function validateddl() { 
      if ($("#ddlGender").val === "" || $("#ddlGender").val() == "0") { 
       ErrArr.push('Please select the gender'); 
      } 
      if ($("#ddlMaritalStatus").val === "" || $("#ddlMaritalStatus").val() == "0") { 
       ErrArr.push('Please select the Marital Status'); 
      } 
      if ($("#ddlNationality").val === "" || $("#ddlNationality").val() == "0") { 
       ErrArr.push('Please select the Nationality'); 
      } 
     } 
    }); 

Также см мой ASPX кнопки: -

<asp:Button ID="btnSave" CssClass="button" Text="Save" runat="server" 
        CausesValidation="true" onclick="btnSave_Click" 
        /> 
+1

Я думаю, 'e.preventDefault();' предотвращает некоторый запрос POST, который должен быть сделан на сервер. – Andrey

+0

Вы вызываете 'preventDefault', что означает, что нажатие кнопки не делает ничего, если вся проверка прошла успешно. Удалите этот вызов или выполните некоторые пользовательские действия в конце обработчика кликов – Andrei

+0

@Andrey: Итак, любой другой способ поискать это? – BNN

ответ

3

Я предлагаю вам НЕ использовать щелчок кнопки, но представить в форме проверки:

$(document).ready(function() { 
    $('#formID').on("submit",function (e) { 
     // e.preventDefault(); // does not belong here 
     validateTitle(); 
     validateddl(); 
     validateTextBoxes(); 
     if (ErrArr.length > 0) { 
      e.preventDefault();// but here 
      alert(ErrArr.join("\n")); 
      ErrArr = []; 
     } 
    }); 
. 
. 
. 

Я предполагаю, что также означает, что вы должны сделайте свою кнопку кнопкой отправки и убедитесь, что asp не добавляет событие клика, поскольку он уже назначен jQuery

+0

, но после проверки мой другой код за сценой также является их. так что? – BNN

+0

Хм, я не совсем в ASP ... - Я думаю, ваш код позади на кнопке то? – mplungjan

+0

Да, сэр, который находится на кодовом щелчке позади. Но спасибо за это. Я получил решение для этого – BNN

0

ход событий предотвратить на обработчик щелчка кнопки только тогда, когда проверка клиента терпит неудачу.

$('#btnSave').click(function (e) { 

     validateTitle(); 
     validateddl(); 
     validateTextBoxes(); 
     if (ErrArr.length > 0) { 
      alert(ErrArr.join("\n")); 
      ErrArr = []; 
      e.preventDefault(); 
      return false; 
     } 
    }); 
+0

return false больше не требуется – mplungjan

0

Попробуйте

$('#btnSave').click(function(e) { 
    //e.preventDefault(); 
    validateTitle(); 
    validateddl(); 
    validateTextBoxes(); 
    if(ErrArr.length > 0) { 
     e.preventDefault(); //use e.preventDefault here 
     alert(ErrArr.join("\n")); 
     ErrArr = []; 
     //return false; 
    } 
}); 
+1

return false тогда больше не нужен – mplungjan

1
$('#btnSave').on("click", function(e) { 
    //e.preventDefault(); 
    validateTitle(); 
    validateddl(); 
    validateTextBoxes(); 
    if(ErrArr.length > 0) { 
     e.preventDefault(); //use e.preventDefault here 
     alert(ErrArr.join("\n")); 
     ErrArr = []; 
     //return false; 
    } 
}); 
Смежные вопросы