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 回答