【发布时间】:2013-09-18 21:17:32
【问题描述】:
我有 3 个 select2 框,页面要求在使用其中一个时禁用另外两个。我有以下代码,但是它不起作用。当页面加载时,所有 select2 都会消失(它们在 HTML 中被设置为隐藏输入):
$("#collection-search").change(function(){
if($(this).val())
$("#subject-search").select2("enable", false);
$("#special-search").select2("enable", false);
else
$("#subject-search").select2("enable", true);
$("#special-search").select2("enable", true);
});
$("#subject-search").change(function(){
if($(this).val())
$("#collection-search").select2("enable", false);
$("special-search").select2("enable", false);
else
$("#collection-search").select2("enable", true);
$("special-search").select2("enable", true);
});
$("#special-search").change(function(){
if($(this).val())
$("#collection-search").select2("enable", false);
$("#subject-search").select2("enable", false);
else
$("#collection-search").select2("enable", true);
$("#subject-search").select2("enable", true);
});
任何想法为什么会发生这种情况?我正在浏览 FireBUG,但没有显示任何有用的信息。我唯一能看到的是 jquery.min.js 中“else”语句中的语法错误。
【问题讨论】:
-
如果条件语句多于一行,请使用括号,否则会中断。
-
像这样:
if($(this).val()){ $("#subject-search").select2("enable", false); $("#special-search").select2("enable", false);}? -
是的,否则语句不知道在哪里结束
-
好吧,有点工作。第一个和第三个 select2 的条件都满足了,但是当使用第二个时,只有第一个 select2 禁用。
-
编辑你的代码,你也应该添加你正在使用的 HTML。这会有所帮助。
标签: jquery jquery-select2