2016-04-19 21 views
1

友人、admin varのテキスト検証を追加する方法がわかりません。 ポイントは0または1またはtrueまたはfalseのいずれかの形式で入力します。数字を確認するのは大丈夫ですが、テキスト入力の有効なチェックを行うことはできません。結果はtrueとfalseの入力テキスト検証を追加するにはどうすればよいですか?

!admin.isEqual("false") || !admin.isEqual("true") 

admin.valueOf()!="true" || admin.valueOf()!="false" 

として、それは真と偽を含む任意のテキストを渡さない:真のE-E-E、fasleee、アブラ-cadabraなど

<script type="text/javascript"> 
    function submitEmployeeForm() {    

     // getting the employee form values 
     var name = $('#name').val().trim(); 
     var age = $('#age').val(); 
     var admin = $('#admin').val(); 
     if(name.length ==0) { 
      alert('Please enter name'); 
      $('#name').focus(); 
      return false; 
     } 

     if(age <= 0) { 
      alert('Please enter valid age'); 
      $('#age').focus(); 
      return false; 
     } 

     if(admin < 0 || admin > 1) { 
      alert('Please enter 0 for false, 1 for true'); 
      $('#admin').focus(); 
      return false; 
     } 
     return true; 
    }; 
</script> 

は、私は次の2つのオプションを試してみました。

+0

isEqualはJSではなくJAです。 admin ==空白、未定義または0でない場合は 'if(admin)'がfalseになる – mplungjan

+3

管理フィールドにいくつかラジオボタン/ドロップダウンメニューオプションを使用 – kkaosninja

答えて

2

あなただけ'0','1','true','false'が有効なものとして受け入れるようにしたい場合は、私たちがやることは、有効なテキストを保持する配列を作成し、任意の要素のマッチングのための配列を検索するindexOf(parameter)を使用しているこの

if (['0','1','false','true'].indexOf(admin.toLowerCase()) === -1) { 
     alert('Please enter 0 for false, 1 for true'); 
     $('#admin').focus(); 
     return false; 
} 

のようなものを使用渡されたパラメータ見つかった場合は配列内で見つかった位置を返し、そうでなければ-1を返します。だからあなたのケースでは、それは渡された値が受け入れられたものではなかったことを意味する-1であるなら、あなたのことをしてください。


また、あなたの代わりに、テキストボックスのチェックボックスを使用することができ、そしてそれはcheckedプロパティがtrueの場合にだけテストします。

+0

私は を試しました(['0'、 '1' 、 'false'、 'true'] indexOf(admin.toLowerCase())> -1) 、 '0'、 '1'、 'false'、 'true'以外はすべて受け入れる – SergeiK

+0

@svorobeiあなたは正しい..私はあなたがifの中で何をしているのか分からなかった。 '<-1'から' == - 1'に変更します –

+0

ありがとうございます!それが助けになった。 – SergeiK

0

はフォローのみ試してみてください(。More here at をyouが使用している場合これは、値の等価テーブルです== instead ===の)

if (admin == true || admin == false || admin == "true" || admin == "false") { 
    //if you want to convert -> convert it, and send to server 
} else { 
    //Wrong input 
} 

0

youがちょうどない理由1、0、真か偽かをチェックしますが、論理ANDを使用してこのようにしてください:

if(admin != 0 && admin != 1 && admin != "true" && admin != "false"){ 
    alert('Please enter 0 for false, 1 for true'); 
    $('#admin').focus(); 
    return false; 
} 
関連する問題