2016-04-25 13 views
0

jQuery Validateプラグインを使用してWebサイトのフォームをチェックします。ここで検証でルールがチェックされない

<form id ="formCharacteristics" align="center"> 
    <dl> 
     <dt style="text-align:left; margin-left:120px;"><label for="cpuname">CPU name</label></dt> 
     <dd><input type="text" id="cpuname" placeholder="Intel 8086"></dd>     
    <div align="right" style="margin-right:30px"> 
     <button id="buttonSubmitCharacteristics" type="button" onclick = "AddCPU()" >Done</button> 
     <button type="button" onclick="HideMessage()">Back</button> 
    </div> 
</form> 

をチェックするための私のHTMLフォームの一部であり、ここでは、JavaScriptのコードの一部であるAjaxは

AddCPU(){ 
    var form = $('#formCharacteristics'); 
    if(!form.valid()) 
     return; 
    var CPUname = $('input #cpuname'); 
    .... 
} 

検証は他のフォーム上で正常に動作しますが、このフォームその上を投稿する前に、それは検証を呼び出しますルールをチェックしません。私は同じフォームIDと入力IDを使用しません。 rulesオブジェクトに指定されているjQueryの検証プラグインが正常に機能するためには

$('#formCharacteristics').validate({ 
    rules: { 
     cpuname: { // <- this is the NAME attribute 
      required: true, 
      maxlength: 30, 
      .... 

、あなたのinput必見同じname含まれています。ここ
はspecifingルール、コードが

$(document).ready(function() { 
$('#formCharacteristics').validate({ 
    rules:{ 
     cpuname: { 
      required: true, 
      maxlength: 30, 
      minlength: 4 
      } 
     } 
    }); 
...... 

)}; 
+0

ここで、int 'cpuname'の検証を終了しましたか? 'cpuname'にルールが適用されていないので、フォームが有効です。 –

+0

以前に' form.validate() 'を呼んでから指定しない限り、' form.valid() 'を呼び出すことはできません。ルールおよびその他の検証オプションが含まれます。また、検証プラグインでは、IDだけでなく要素に名前が必要です。 – Barmar

+0

@Barmar、* "私はValidation Pluginを使用しています" * - コードに基づいて、どのプラグインについて話しているのかはっきりしないので、[tag:jquery-validate]でタグ付けした理由がわかりません。 – Sparky

答えて

3

ためのコードです。 ..

<input type="text" name="cpuname" id="cpuname" .... 
+0

ありがとう、私の一日を救った。 – MasterUZ

関連する問題