1

我有一个表格,用户可以 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');
    }
});

在满足所有要求(复选框和输入)后,如何让警报显示?我在这里做了一个小提琴来展示我正在使用的东西。

提前谢谢你的帮助。

4

4 回答 4

1

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

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

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

你需要颠倒你的ifelse-if块的顺序吗?

于 2013-03-14T20:42:33.550 回答
0

失踪 '&'

$checkboxes.is(':checked') && $(".year").val() != "" 
于 2013-03-14T20:34:52.893 回答
0

您应该使用&&而不是&进行布尔比较,而且您似乎输入错误valva.

于 2013-03-14T20:35:21.650 回答
0

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

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

于 2013-03-15T00:55:25.633 回答