2012-03-25 8 views
0

私はJavaScriptを使用して、私のテキストボックスを検証する必要があるボタンをクリックし、空のテキストボックスには、これまでのところ、私はこれを作った:検証:

$(document).ready(function(){ 
$('#search_form').validate({ 
rules: { 
searchText:{ 
    required: true,  
    number: true 
      }, 
    }, 
messages: { 

    searchText: { 
     required: "required", 
     number: "must be a number" 
    }} 
     })} 
    ); 

それが正常に動作しますが、私はまた、ユーザーが押した場合にメッセージを表示する必要があります検索ボタンを押すと、テキストボックスに「あなたの番号を入力してください」というメッセージが表示されます(プレースホルダを使用)。

serachフォーム:ユーザーが番号を挿入せずに検索ボタンを押すと

<form method="get" id="search_form"> 
<input type="button" value="search" id="search" /> 
<input type="text" name="searchText" id="searchText" placeholder="please enter your number" /> 
</form> 

は、現在のコードが何かを示していないが、彼は、例えば、文字を挿入した場合、彼はメッセージが表示されます「でなければなりませんテキストボックスに値があればそれを削除すれば、 "required"というメッセージが表示されます。

私が試した:

searchText:{ 
    required: { depends: function() 
     { return $("#searchText").val() == 'please enter your number '} },  
    number: true 
     }, 

何も変更を。

私は自分の質問をうまく説明できることを願っています。


ありがとう!

テキストボックスの任意の値を削除すると正常に動作します。必要なmsgが表示されます。 私はフォーム上で検証を行ったので、ボタンクロッキングでは応答しませんでした。 どのようにボタンの検証を追加することができますか?

答えて

0

文字列の比較は正確な検索であることに注意してください。 "number"という単語の後に、試したコードに余分なスペースがあるようです。そのスペースを外してもう一度試してみてください。テキストフィールドの値がプレースホルダの値と正確に一致する場合、dependsメソッドはtrueを返す必要があります。また、$.trim()を試して、文字列の先頭と末尾の空白が削除されていることを確認することもできます。

「オリジナル値」プロパティ(jQueryのdataメソッドを使用)をインスタンス化して、プレースホルダの値を変更する場合は、JavaScriptの検証コードを更新する必要がないようにすることもできます。

+0

ありがとうございます! テキストボックスの任意の値を削除すると正常に動作します。必要なmsgが表示されます。私はフォーム上で検証を行ったので、ボタンクロッキングでは応答しませんでした。どのようにボタンの検証を追加することができますか? – Noon

+0

私は、ボタンがフォームを提出しなければならないと仮定し、 'validate'メソッドを呼び出す必要があります。 jQuery Validatorプラグインなどを使用していますか? – Jona