我有一个带有两个单选按钮的表单,“是”和“否”,可以切换div的可见性。
如果仅在选择“是”选项时选择“否”选项,我想向用户显示警告。
如果未选择任何选项并且单击“否”,则不应显示警报。
$('.toggle').on('change',function(){
var showOrHide = false;
$(this).siblings('input[type=radio]').andSelf().each(function() {
if ($(this).val() == 1 && $(this).prop("checked")) showOrHide = true;
})
$(this).parent().parent().next('.group').toggle(showOrHide);
}).change()
答案 0 :(得分:1)
处理此问题的一种方法是仅在选中“是”按钮时应用处理程序,并在选中“否”按钮时将其删除。我假设两者都开始未选中,否则至少会检查其中一个按钮而你的第二个条件不适用。
$('.toggle[value="Yes"]').on('change', function() {
$('.toggle[value="No"]').off('change');
if (this.checked) {
$('.toggle[value="No"]').on('change', function() {
// show your alert
});
});
});
答案 1 :(得分:1)
使用变量存储已选择的值。
HTML
<input type="radio" id="Yes" name="rad" value="Yes"/>Yes<br/>
<input type="radio" id="No" name="rad" value="No"/>No<br/>
的Javascript
var alreadySelected="";
$("input").click(function(){
if(alreadySelected=="Yes")
{
alert("You are switching from Yes");
}
alreadySelected=$(this).val();
});
编辑:根据您的评论,如果在页面加载中已经选中了一个单选按钮,请使用此代码,
页面加载后,获取已经检查的项目并将其存储在“alreadySelected”变量中。这是更新的代码
var alreadySelected="";
$(function(){
alreadySelected=$('input[name=rad]:checked').val()
})
$("input").click(function(){
if(alreadySelected=="Yes")
{
alert("You are switching from Yes");
}
alreadySelected=$(this).val();
});
以下是工作演示:http://jsfiddle.net/VMKaP/8/
答案 2 :(得分:0)
这是一个可以完成工作的技巧 - 在页面中设置一个不可见字段,指示是否选择了“是”按钮 - 对于前 -
<input type="hidden" value="no" name="isYesChosen">
现在,当检查“是”无线电时 - 触发一个功能,将“isYesChosen”的值设置为 - “是”。
现在只有在检查输入值为“是”时才能触发切换按钮 (在jquery代码的开头添加一个简单的if语句)。 如果你有任何消息,请注意我