满足所有要求后显示警报

时间:2013-03-14 20:34:05

标签: javascript jquery html

我有一个表格,用户可以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来展示我正在做的事情。

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

除了之前的正确答案(缺少&和拼写错误的val)之外,还有一个更基本的逻辑问题。你似乎有这种结构:

if (conditionA) {
    // behaviorA
} else  if (conditionA && conditionB) {
    // behaviorB
}

你永远不会用这样的逻辑来达到行为B.如果conditionA失败,那么conditionA && conditionB肯定也会失败。

您是否需要颠倒ifelse-if块的顺序?

答案 1 :(得分:0)

缺少'&'

$checkboxes.is(':checked') && $(".year").val() != "" 

答案 2 :(得分:0)

您应该使用&&代替&进行布尔比较,而且您似乎将val误输入为va

答案 3 :(得分:0)

我建议有两个事件,一个在“教师”复选框上,一个在年份字段上完成。这两个事件都可以触发一个功能,显示您的警报以及您想要的任何其他逻辑。所以几乎没有重复。

这有助于将事件与显示/隐藏年份字段的逻辑分开,如果需要,可以更轻松地允许您对这两个事件执行不同的操作。