1

ユーザーができるフォームがあります 1.) 1 つのオプションをチェックして完了します。または 2.) 他のオプションをオンにして、テキスト フィールドに入力します。

結局のところ、アラートを表示したいのですが、表示されません。

$('.know-your-role').show('fast', function() {
    var $checkboxes = $('input:checkbox.checkchoice');
    if($checkboxes.is(':checked')){
        // show this after checked and the input has been filled.
        alert('cool');
    }else if($checkboxes.is(':checked') & $(".year").va() != "" ){
        alert('cool');
    }
});

すべての要件 (チェックボックスと入力) が満たされた後にアラートを表示するにはどうすればよいですか? ここでフィドルを作成して、何を扱っているかを示しました。

よろしくお願いいたします。

4

4 に答える 4

1

以前の正解 (missing&と mispelled val) と同様に、ここにはより根本的な論理的な問題があります。あなたはこの構造を持っているようです:

if (conditionA) {
    // behaviorA
} else  if (conditionA && conditionB) {
    // behaviorB
}

このようなロジックでは、behaviorB に到達することはありません。conditionA失敗した場合は、conditionA && conditionB確かに失敗します。

ifandelse-ifブロックの順序を逆にする必要がありますか?

于 2013-03-14T20:42:33.550 に答える
0

ない '&'

$checkboxes.is(':checked') && $(".year").val() != "" 
于 2013-03-14T20:34:52.893 に答える
0

ブール比較に&&は代わりに使用する必要があります。また、 asとタイプミスしたようです。&valva

于 2013-03-14T20:35:21.650 に答える
0

2 つのイベントを用意することをお勧めします。1 つは [Teacher] チェック ボックスがチェックされており、もう 1 つは年度フィールドが完了しています。どちらのイベントも、アラートとその他の必要なロジックを表示する単一の関数をトリガーできます。そのため、重複はほとんどありません。

これは、年フィールドを表示/非表示にするロジックからイベントを分離するのに役立ち、必要に応じて 2 つのイベントに対して異なるアクションをより簡単に実行できるようにします。

于 2013-03-15T00:55:25.633 に答える