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();
}
});
Возможно? Я хочу вернуть ту же функцию, если не проверяет любой переключатель.
Но это не работает.
Опасно - если условие никогда не выполняется, то вы будете застревать в бесконечном клик-петле.
В противном случае используйте: $(selector).trigger("click")
.
Кроме того, эта строка:
var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") { ... }
... может быть упрощено:
if($('.question3').is('checked')) { .... }
Если ваше условие if (typeof line1 === "undefined")
оценивается как true
, то вы находитесь в бесконечном цикле. Потому что вы снова нажимаете ту же кнопку.
$('#button6').click(function () {
some condition{
$( "#button6" ).trigger( "click" ); // Again triggering the same button click
}
}
Если флажок не установлен, вы можете показать предупреждение, но не называть тот же самый щелчок на кнопке. Что вы можете сделать, так это вы можете попросить пользователя снова проверить.
Ваш подход пытается рекурсивно... и это ужасная идея. Не скрывайте que3 до тех пор, пока вы не подтвердите ответ. Затем покажите que4. Рассмотрите также комментарии; что вы можете украсить вопрос (например, добавить красную рамку).
var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") {
// $("que3").addClass('error');
return;
} else {
// $("que3").removeClass('error');
$('#que3').hide();
$('#que4').show();
}