【问题标题】:Alert or message on specific option selected in select menu在选择菜单中选择的特定选项的警报或消息
【发布时间】:2014-01-14 10:35:41
【问题描述】:

我有一个选择下拉菜单。菜单只是为了展示,对表单没有任何贡献。但是,我希望选项“b”在选择/单击时显示警报/消息,然后我希望在用户关闭警报后选择选项“a”(类似于disabled)。

<select name="fake">
   <option name="a">a</option>
   <option name="b">b</option>
</select>

我找到了其他 javascript 代码,但没有什么适合我的特殊需要。

编辑

这是我需要的一半:

<select onchange="selectChangeHandler(this)">
    <option>a</option>
    <option>b</option>
</select>
<script>
    function selectChangeHandler(selectNode) {
         if (selectNode.selectedIndex !== 2) {
             alert("I'm alert option!");
         }
    }
</script>

但是,当用户选择选项“b”并显示警报时,我希望该选项恢复为选项“a”

【问题讨论】:

  • 你发现了什么?你尝试了什么?你可以使用 jQuery 或其他一些库吗?
  • 使用&lt;select&gt; 上的id 属性会更快。将 name 放在&lt;option&gt; 上也无济于事。 Here is the DOM interface。你试过什么?
  • &lt;select name="fake" onchange="if(this.value!='b'){alert('yes');&gt; &lt;option name="a"&gt;a&lt;/option&gt; &lt;option name="b"&gt;b&lt;/option&gt; &lt;/select&gt;

标签: javascript html select drop-down-menu


【解决方案1】:

您可以在调用 onchange() 事件时调用 javascript 函数。

HTML

<select name="fake" onchange="change(this);">
   <option value="a" name="a">a</option>
   <option value="b" name="b">b</option>
</select>

javascript,

<script>
function change(selBox) {
    for(var i, j = 0; i = selBox.options[j]; j++) {
        if(i.value == "b" && selBox.selectedIndex != 0) {
            alert("you've clicked b");
            selBox.selectedIndex = 0;
        }
    }
    }
</script>

【讨论】:

  • 您的代码在 Chrome 中运行良好,但在 IE 中却不行。在 IE 中,我可以选择“b”,它会给我警报,但该选项仍处于选中状态。然后选择“a”会再次发出警报。
  • 宾果游戏!你是个传奇!干杯
【解决方案2】:
$('#chk').change(function(){
    if($(this).val() === 'a')
        alert("You Clicked a!");
});

其中chk是选择元素的id

如果你使用的是名字,那么

$('#chk').change(function(){
    if($(this).attr('name') === 'a')
        alert("You Clicked a!");
});

其中chk是选择元素的id

【讨论】:

  • 此问题未提及 jQuery 或已对其进行标记(假设 $ 在您的代码中为 jQuery
  • 不,我没有使用 jQuery。 @ReNiShAR
猜你喜欢
  • 1970-01-01
  • 2021-08-26
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
相关资源
最近更新 更多