2015-07-22 39 views
0

我想驗證一個窗體使用jquery的驗證功能。當我觸發.valid()函數時,我得到'無法讀取未定義的屬性調用。JQuery的 - 驗證錯誤無法讀取未定義的屬性'調用'

<script> 
$("#form1").validate({ 
    rules: { 
     EditSubName: { 
      required: true, 
     }, 
     EditSubStreetNumber: { 
      required: true, 
     }, 
     EditSubStreetName: { 
      required: true 
     }, 
     EditSubSuburb: { 
      required: true, 
     }, 
     EditSubState: { 
      required: true, 
      lettersonly: true, 
     }, 
     EditSubPostcode: { 
      required: true, 
     }, 
     EditSubEmail: { 
      email: true,  
     } 
    }, 

    errorPlacement: function(error,element) { 
     return true; 
    }, 
    highlight: function(element) { 
     $(element).closest("input") 
     .addClass("textbox_001_err") 
     .removeClass("textbox_001"); 
    }, 
    unhighlight: function(element) { 
     $(element).closest("input") 
     .removeClass("textbox_001_err") 
     .addClass("textbox_001"); 
    }, 
    submitHandler: function(form) { 
     alert('Submitting Entered'); 
     //Update only 
      if($("#radiono").prop("checked") == true) 
      { 
       alert('Entered Radio No'); 
        $(".blackout").css("display", "none"); 
        $.ajax({ 
        url: 'save/saveSubjectonly.asp', 
        type: "POST", 
        data: { 
         SubjectID: $('#DefSubID').val(), 
         name: $('#EditSubName').val(), 
         dob: $('#EditSubDOB').val(), 
         email: $('#EditSubEmail').val() , 
         telephone: $('#EditSubTelephone').val() , 
         mobile: $('#EditSubMobile').val() , 
         fax: $('#EditSubFax').val() , 
         streetnumber: $('#EditSubStreetNumber').val() , 
         streetname: $('#EditSubStreetName').val() , 
         suburb: $('#EditSubSuburb').val() , 
         postcode: $('#EditSubPostcode').val() , 
         state: $('#EditSubState').val() , 
         notes: $('#EditSubjectNotes').val(), 
         activalue: $('input:checkbox:checked').val(), 
         companyname: $('#EditCompanyName').val() 
        }, 
        success: function(result){ 

          //location.reload() 

        } 
       }); 

      }; 
      //Made changes for all 
      if($("#radioyes").prop("checked") == true) 
      { 
        $(".blackout").css("display", "none"); 
        $.ajax({ 
        url: 'save/saveSubjectandupdate.asp', 
        type: "POST", 
        data: { 
         SubjectID: $('#DefSubID').val(), 
         name: $('#EditSubName').val(), 
         dob: $('#EditSubDOB').val(), 
         email: $('#EditSubEmail').val() , 
         telephone: $('#EditSubTelephone').val() , 
         mobile: $('#EditSubMobile').val() , 
         fax: $('#EditSubFax').val() , 
         streetnumber: $('#EditSubStreetNumber').val() , 
         streetname: $('#EditSubStreetName').val() , 
         suburb: $('#EditSubSuburb').val() , 
         postcode: $('#EditSubPostcode').val() , 
         state: $('#EditSubState').val() , 
         notes: $('#EditSubjectNotes').val(), 
         activalue: $('input:checkbox:checked').val(), 
         companyname: $('#EditCompanyName').val() 
        }, 
        success: function(result){ 
          alert('Success'); 
          //location.reload() 

        } 
       }); 
      } 
    }, 
}); 
</script> 

我不知道爲什麼會發生這種情況。我知道它不會進入SubmitHandler,因爲沒有警報消息觸發。

回答

0

您在規則對象中的驗證屬性中有尾隨逗號。

rules: { 
     EditSubName: { 
      required: true 
     }, 
     EditSubStreetNumber: { 
      required: true 
     }, 
     EditSubStreetName: { 
      required: true 
     }, 
     EditSubSuburb: { 
      required: true 
     }, 
     EditSubState: { 
      required: true, 
      lettersonly: true 
     }, 
     EditSubPostcode: { 
      required: true 
     }, 
     EditSubEmail: { 
      email: true 
     } 
    }, 
0

我還沒有使用這個庫jQuery的,但對於文檔,我認爲你缺少了你的函數或「方法」每個人一個參數。

對於亮點功能必須被定義爲文檔如下:

$(".selector").validate({ 
    highlight: function(element, errorClass) { 
    $(element).fadeOut(function() { 
     $(element).fadeIn(); 
    }); 
    } 
}); 

我認爲JS試圖調用特定的簽名,但沒有爲定義的函數,所以你有不確定的。

下面是文檔:http://jqueryvalidation.org/validate

同樣,提到爸爸的逗號是錯誤的。

1

我發現了這個問題。我忘記了EditSubState規則中的字母是additional-methods.js的一部分,它並未包含在頁面中。

一旦我包含了這個,驗證的工作沒有問題。

+0

我嘗試使用'require_from_group'規則時沒有包含'additional/require_from_group.js',但發生同樣的錯誤。 –

相關問題