2017-02-18 6 views
0

私はjQuery Validateを使用します。フォームを送信すると、必須のフィールドが1つしか表示されず、クリックしたときだけ、次のフィールドに表示されます。jQueryの奇妙な動作Validate

これは、スクリプトや体である:

jQuery(function() { 
     $("#form1").validate({ 
      rules: { 
       Yritys: { 
        required: true, 
        minlength: 3 
       }, 
       Henkilönimi: { 
        required: true, 
        minlength: 3 
       }, 
       Asema_yrityksessa: { 
        required: true, 
        minlength: 3 
       }, 
       Puhelin_Nr: { 
        required: true, 
        minlength: 3 
       }, 
       e_Mail: { 
        required: true, 
        minlength: 3 
       }, 
       Keskustelun_aihe: { 
        required: true, 
        minlength: 10 
       }, 
       messages: { 
        Yritys: { 
         required: "You must enter something", 
         minlength: "You must enter more than 3 characters" 
        }, 
        Henkilönimi: { 
         required: "You must enter something", 
         minlength: "You must enter more than 3 characters" 
        }, 
        Asema_yrityksessa: { 
         required: "You must enter something", 
         minlength: "You must enter more than 3 characters" 
        }, 
        Puhelin_Nr: { 
         required: "You must enter something", 
         minlength: "You must enter more than 3 characters" 
        }, 
        e_Mail: { 
         required: "You must enter something", 
         minlength: "You must enter more than 3 characters" 
        }, 
        Keskustelun_aihe: { 
         required: "You must enter something", 
         minlength: "You must enter more than 10 characters" 
        } 
       } 
      }, 

     }); 

    }); 


<div class="divInfo"> 
     <form id="form1"> 
      <span>Yritys:</span><br /> 
      <input id="Yritys" type="text" required /><br /> 
      <span>Henkilönimi:</span><br /> 
      <input id="Henkilönimi" type="text" required /><br /> 
      <span>Asema yrityksessa:</span><br /> 
      <input id="Asema_yrityksessa" type="text" required /><br /> 
      <span>Puhelin Nr:</span><br /> 
      <input id="Puhelin_Nr" type="text" required /><br /> 
      <span>e-Mail:</span><br /> 
      <input id="e_Mail" type="text" required /><br /> 
      <span>Keskustelun aihe:</span><br /> 
      <textarea id="Keskustelun_aihe" maxlength="140" style="width:300px;height:150px;" required>Enter Text Here...</textarea><br /> 
      <span style="color:red; margin-left:0;">Keskustelun aihe max 140 merkkia</span> 
      <div id="textarea_feedback" style="opacity:0.5"></div> 
      <div class="butt"><pre style="font-size:x-large">Vahvista varaus klikkamalla tässä>>>>>>>>>>>>><button id="submit" type="submit" name="appointment" value="" class="btn-warning" /></pre></div> 

     </form> 
    </div> 

これはなぜ起こるのでしょうか?それは動作しますが、正しく動作していません。私は解決策を見つけることができません。

EDIT:

この問題が発生した:

enter image description here

+0

* *〜SO上虚辞、頭字語、テキスト話す、または適切な英語の文法以外のものを使用しないでください "で起こっている博"。編集されました。ありがとうございました。 – Sparky

+0

申し訳ありません、私は瞬間に巻き込まれました – MicroDev

答えて

1

これはなぜ起こるのでしょうか?それは動作しますが、それが正常に動作していない...

あなたはMUSTは、検証のためにと考え、すべての入力にname属性を持っている、とname.validate()rulesオブジェクトから参照することができる唯一のものです。

$("#form1").validate({ 
    rules: { 
     Yritys: {  // <- this must be the NAME 
      required: true, 
      minlength: 3 
     }, 
     Henkilönimi: { // <- this must be the NAME 
      .... 

...私は解決策を見つけることができません

Official Documentation: Markup recommendations -

を義務化: '名前' 属性が検証を必要とするすべての入力要素に要求されます、プラグインはこれを使わないとが機能しません。


また偶然兄弟ことになっているrulesの内部messagesオブジェクトを置きます。

$("#form1").validate({ 
    rules: { 
     .... 
    }, 
    messages: { 
     .... 
    } 
}); 

DEMOjsfiddle.net/2o9Lxkej

+0

私はIDの名前に変更、まだ動作していません:/ – MicroDev

+0

@MicroDev、あなたも間違って 'ルール'の中に 'メッセージ'を入れます。これを修正し、それが動作します:http://jsfiddle.net/2o9Lxkej/ – Sparky

+0

私はそれが動作するはずですが、私のビジュアルスタジオでは、私もフィドルからコードをコピーしないで、それはまだ動作していません。病気だけで検証せずに行くが、あなたの答えは正しい – MicroDev