我有一个表格,用户可以1.)检查一个选项并完成。或2.)检查其他选项并填写文本字段。
完整的事情是,毕竟说完了,我想要我的警示显示,但事实并非如此。
$('.know-your-role').show('fast', function() {
var $checkboxes = $('input:checkbox.checkchoice');
if($checkboxes.is(':checked')){
// show this after checked and the input has been filled.
alert('cool');
}else if($checkboxes.is(':checked') & $(".year").va() != "" ){
alert('cool');
}
});
如何在满足所有要求(复选框和输入)后显示警报? 我做了一个fiddle here来展示我正在做的事情。
提前感谢您的帮助。
答案 0 :(得分:1)
除了之前的正确答案(缺少&
和拼写错误的val
)之外,还有一个更基本的逻辑问题。你似乎有这种结构:
if (conditionA) {
// behaviorA
} else if (conditionA && conditionB) {
// behaviorB
}
你永远不会用这样的逻辑来达到行为B.如果conditionA
失败,那么conditionA && conditionB
肯定也会失败。
您是否需要颠倒if
和else-if
块的顺序?
答案 1 :(得分:0)
缺少'&'
$checkboxes.is(':checked') && $(".year").val() != ""
答案 2 :(得分:0)
您应该使用&&
代替&
进行布尔比较,而且您似乎将val
误输入为va
。
答案 3 :(得分:0)
我建议有两个事件,一个在“教师”复选框上,一个在年份字段上完成。这两个事件都可以触发一个功能,显示您的警报以及您想要的任何其他逻辑。所以几乎没有重复。
这有助于将事件与显示/隐藏年份字段的逻辑分开,如果需要,可以更轻松地允许您对这两个事件执行不同的操作。