3

私はこの問題を解決しようとしています.私はJavaScriptに比較的慣れていないので:

関数 termos() は真または偽の結果を返します。

おそらくこれに対する解決策は簡単ですが、それに到達することはできません。これを行うことは可能ですか?私は自分の疑問を実証するためにこのコードを書きました

function termos() {
  if($('.terms').is(':checked')) {
    return true;
  } else {
    return false;
  }
}

使ってもいいですか

} else if(termos() === false) {
  alert('please agree with terms');
  return false;
}

これは機能しません

4

3 に答える 3

20

私が理解していることから、termos() が true または false を返すかどうかを確認したいと考えています。この場合、false を返したときに、コードのブロックを通過する必要があります。

偽/真実の評価を使用できます( http://11heavens.com/falsy-and-truthy-in-javascript )

だからあなたはただ言うことができます:

if ( termos() ) {
  // when its true
} else {
 // when its false
}
于 2012-07-12T17:09:24.350 に答える
1

クラスを使用して jQuery オブジェクトを設定しているため、そのクラスのアイテムが複数ある場合、競合する結果が得られます。あなたの質問の詳細が不足していることに基づいて、これが当てはまる可能性があると推測しています。

チェックボックスの を設定してid、要素を正しく選択できるようにします。また、jQuery が DOM 全体を検索しないように、親コンテナーを設定することをお勧めします。

また、次のようにコードを減らすことができます。

function termos(){
  return $('#Agree',"#ParentContainer").is(':checked');
}


if(!termos()){
  alert('please agree with terms');
}
于 2012-07-12T17:24:26.037 に答える
1

これで私の問題は解決しました。助けようとした人に感謝します。

function termos(){
        if ($('.checky3').is(':checked')){
            return 1;
        }
    }

if (termos() !== 1){
        $('.checky3').css('border','solid 1px red');
        return false;
}
于 2012-07-12T18:47:22.063 に答える