我有一些代码可以创建一个下拉框,有一堆选项,还有一个我不知道的选项。我正在尝试使用jQuery来说明是否选择了idk,警告(“可能需要额外的时间来路由您的请求”);
我正在尝试使用.focusout事件,嵌套在条件语句中以触发警报。甚至不确定我能做到这一点,但这确实是做我想要的最好的方式,因为我不想看到所选择的任何选项的警报。
这是我的小提琴http://jsfiddle.net/JustJill54/ye8rG/
的链接理想情况下,我希望能够说 - 但我不能。有什么我做错了吗?
$("option[value='idk']").focusout(function(){
alert("If no organizational element is selected, additional time may be required to route this request");
});
非常感谢!
答案 0 :(得分:3)
您需要监听select
元素上的事件,而不是option
。还有一些语法错误。我updated your fiddle here。
请注意,从UX的角度来看,可能有更微妙的方式来通知用户,而不是在他们的脸上弹出一个侵入式警报框。例如,可能会出现新的文本范围,或者其他一些不会破坏其工作流程的可视指示器。
$(document).ready(function(){
// Attach to the focusout event of the select, if that's when
// you want to check the value
$("select[title='organizationalElement']").focusout(function(){
// Now see if it's the value you want
if ($(this).val() === 'idk'){
alert("If no organizational element is selected, additional time may be required to route this request");
}
});
});
答案 1 :(得分:2)
我有点晚了但是哦,这是我稍微不同的答案:
$(document).ready(function(){
$('.org').focusout(function(){
if($(this).val() == 'idk')
{
alert("If no organizational element is selected, additional time may be required to route this request");
}
});
});
但我要补充的是2美分:我不知道为什么人们决定在具有特定类或id的对象上使用复杂的选择器。在这种情况下,您可以选择类.org而不必评估元素的标题。更好的是,为它分配一个id,以便jquery在遇到该元素时停止遍历。
答案 2 :(得分:1)
我发现你的jsfiddle有两个问题(在这里提供参考):
$(document).ready(function(){
if ($("select[title='organizationalElement']").val() == "idk') {
$(this).focusout(function(){
alert("If no organizational element is selected, additional time may be required to route this request");
});
});
});
这是一个过于简化的工作示例:
$(document).ready(function(){
$('select').focusout(function(){
if ($(this).val() == 'idk') {
alert('Some message');
}
});
});
这与您的不同之处在于两个关键方面:
if
而非});
关闭}
块。可能只是一个错字。还有一些不匹配的单引号和双引号。select
的值为idk
,则将此事件绑定到该页面,这将显示警报。”注意区别。页面首次加载时,该值永远不会是idk
,并且该代码将永远不会再次执行。相反,当元素失去焦点并检查事件中的条件时,将事件绑定到始终触发。