我对我的无线电按钮形式的if else声明有问题。您可以在此处查看:http://jsfiddle.net/UDGGS/20/
Jquery的:
$(document).ready(function() {
$("input").click(function() {
$check = true;
});
$("#next1").click(function() {
if ($check) {
$("boks1").hide();
$("boks2").show();
} else {
alert('Pick one');
}
});
});
HTML:
<div id="boks1">
<h1>What would you like to answer? </h1>
<input type="radio" name="group1" value="0">Answer 1<br>
<input type="radio" name="group1" value="1">Answer 2<br>
<input type="radio" name="group1" value="2">Answer 3<br>
<div id="next1" style="border:1px solid black;">Next question<div>
</div>
<div id="boks2">
<h1>What would you like NOT to answer? </h1>
<input type="radio" name="group2" value="0">Answer 1<br>
<input type="radio" name="group2" value="1">Answer 2<br>
<input type="radio" name="group2" value="2">Answer 3<br>
<div id="next2">Next question 3<div>
</div>
CSS:
#boks2 {display:none;}
#next1 {display:block;}
当我点击下一个并且没有选择单选按钮时,为什么没有引发警报?当我选择一个并点击下一个div时,为什么我没有显示下一个问题。
答案 0 :(得分:2)
问题在于您错过了#
选择器中的id
:
$("#boks1").hide();
$("#boks2").show();
但是,您应该在两个函数的父作用域中声明$check
变量(因此在ready
事件处理程序中):
$(document).ready(function() {
var $check = false;
});
否则,如果在选择单选按钮之前单击“下一步”按钮,则不会定义$check
。当它确实被定义时,它在全球范围内,这不是一件好事。
答案 1 :(得分:2)
定义变量,然后在单击输入时将其设置为true。
$(document).ready(function() {
var = $check;
$("input").click(function() {
$check = true;
});
$("#next1").click(function() {
if ($check) {
$("#boks1").hide();
$("#boks2").show();
} else {
alert('Pick one');
}
});
});
答案 2 :(得分:1)
在外部范围中定义变量。还有if`` block are missing
#`中的ids选择器。试试这个。
$(document).ready(function() {
var $check;
$("input").click(function() {
$check = true;
});
$("#next1").click(function() {
if ($check) {
$("#boks1").hide();
$("#boks2").show();
} else {
alert('Pick one');
}
});
});
<强> Demo 强>
不是使用变量来查找是否选中了单选按钮,而是可以执行此操作。
注意:我正在使用$("input:checked").length > 0
查看是否使用:checked
选择器选中了任何单选按钮。
$(document).ready(function() {
$("#next1").click(function() {
if ($("input:checked").length > 0) {
$("#boks1").hide();
$("#boks2").show();
} else {
alert('Pick one');
}
});
});
<强> Demo 强>