如果选择了特定选项,则显示警报

时间:2011-12-13 20:20:19

标签: jquery

我有一些代码可以创建一个下拉框,有一堆选项,还有一个我不知道的选项。我正在尝试使用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");
});

非常感谢!

3 个答案:

答案 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");
    });
  });
});
  1. 语法错误
  2. 您在绑定到事件之前运行条件,而不是在事件本身内部
  3. 这是一个过于简化的工作示例:

    $(document).ready(function(){
      $('select').focusout(function(){
        if ($(this).val() == 'idk') {
          alert('Some message');
        }
      });
    });
    

    这与您的不同之处在于两个关键方面:

    1. 请注意,您尝试使用if而非});关闭}块。可能只是一个错字。还有一些不匹配的单引号和双引号。
    2. 事件绑定是第一个问题,条件是第二个问题。在您的版本中,您基本上会说:“首次加载页面时,如果select的值为idk,则将此事件绑定到该页面,这将显示警报。”注意区别。页面首次加载时,该值永远不会是idk,并且该代码将永远不会再次执行。相反,当元素失去焦点并检查事件中的条件时,将事件绑定到始终触发。