0

JS:

$('#button6').click(function () {

    $('#que1').hide();
    $('#que2').hide();
    $('#que3').hide();
    $('#que4').show();
    $('#que5').hide();
    $('#que6').hide();
    $('#que7').hide();
    $('#que8').hide();

    var line1 = $('.question3:checked').val();
    if (typeof line1 === "undefined") {
        var msg = new Windows.UI.Popups.MessageDialog("You Choosed", "nothing");
        msg.showAsync();
        $('#button6').click();
    }

});

可能です?ラジオボタンをチェックしないと同じ機能を返したい。

しかし、これは機能していません。

4

3 に答える 3

1

危険 — 条件が満たされない場合、無限のクリック ループに陥ります。

それ以外の場合は、次を使用します$(selector).trigger("click")


また、この行:

var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") { ... }

…次のように簡略化できます。

if($('.question3').is('checked')) { .... }
于 2013-11-11T06:30:32.110 に答える
0

条件がif (typeof line1 === "undefined")と評価された場合true、無限ループに陥っています。同じボタンをもう一度クリックしているからです。

$('#button6').click(function () {
some condition{
    $( "#button6" ).trigger( "click" ); // Again triggering the same button click
  }
}

チェックボックスがチェックされていない場合、アラートを表示できますが、同じボタンを再度クリックしないでください。できることは、ユーザーに再度確認するように促すことです。

于 2013-11-11T06:39:08.613 に答える
0

あなたのアプローチは再帰を試みています...そしてひどい考えです。回答済みであることを確認するまで、que3 を非表示にしないでください。que4 も表示します。コメントも考慮してください。これが質問を装飾する方法です (例: 赤い枠線を追加します)。

var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") {
  // $("que3").addClass('error');
  return;
} else {
  // $("que3").removeClass('error');
  $('#que3').hide();
  $('#que4').show();
}
于 2013-11-11T06:39:16.810 に答える