0

私は次のことをしたい2セットのラジオボタンを持っています:

1) すべての選択が false の場合、検証メッセージを表示します (これは機能していますが、[保存] を繰り返しクリックすると空白行が追加されます。これを防ぐにはどうすればよいですか?)。

2) セット 1 またはセット 2 のみが選択されている場合、保存時にもう一方のエラー メッセージが表示されます。

3)。セット 1 が選択されている場合、セット 2 の選択では、はいまたはいいえに応じてユーザーを別のページに移動させる必要があります。

前もって感謝します!!

jsfiddle へのリンク

<span id="val1" style="display:none; color:red;"> Please make a selection</span> 
<strong>Radio Set 3</strong>

<input type="radio" name="radio" id="attachYes" />Yes &nbsp;
<input type="radio" name="radio" id="attachNo" />
<label for="radio2">No</label>
<p> 
    <span id="val2" style="display:none; color:red;"> Please make a selection</span><strong>Radio Set 2</strong>
    <input type="radio" name="radio2" id="NotifYes" />Yes &nbsp;
    <input type="radio" name="radio2" id="NotifNo" />No
</p>
<p>
    <a href="#" id="Qbtn">Save</a>
</p>

JS

$('#Qbtn').click(function () {
    if ((!$('#attachYes').attr('checked') === true) && (!$('#attachNo').attr('checked') === true) && (!$('#NotifYes').attr('checked') === true) && (!$('#NotifNo').attr('checked')) === true) {
        //the validations are displaying correctly
        $('#val1').show().append('<br>');
        $('#val2').show().append('<br>');
    } else {
        if (($('#attachYes').attr('checked') === true) || ($('#attachNo').attr('checked') === true) && (!$('#NotifNo').attr('checked') === true) && ($('#NotifYes').attr('checked')) === true) {
            //the user should be taken to page1.html when clicking save and it isn't doing it                  
            window.location = "page1.html";

            //then how do I write if either of radio set 1 is true and #NotifNo of Radio set 2 is true go to page2.html.                
        }
    }
});
4

1 に答える 1

1

デモはこちら

これを試して:

$('#Qbtn').click(function () {
    if ($('#attachYes').prop('checked') && $('#NotifYes').prop('checked')) {
        //go to http://www.yahoo.com         
        window.location = "http://www.yahoo.com";
    } else if ($('#attachYes').prop('checked') && $('#NotifNo').prop('checked')) { 
        //go to http://www.cnn.com                  
        window.location = "http://www.cnn.com";
    } else {
        //the validations are displaying correctly
        $('#val1, #val2').fadeOut('fast', function () {
            $(this).fadeIn('slow');
        });
    }
});

私があなたの質問を正しく理解していれば、これはあなたが必要とすることをします。本当に<br />すべてのエラーを追加しますか? それを避けるために、フェードイン/アウトを追加しました。うまくいくことを願っています。

于 2013-07-08T19:18:40.643 に答える