下载onchange选择列表不起作用?

时间:2014-10-30 05:45:22

标签: javascript html drop-down-menu

第二次选择相同选项时,下拉不工作。 这是我的代码:

<html>
    <body>
        <p>Select a new car from the list.</p>
        <select id="mySelect" onchange="myFunction()">
            <option value="Audi">Audi
            <option value="BMW">BMW
            <option value="Mercedes">Mercedes
            <option value="Volvo">Volvo
        </select>
        <script>
            function myFunction() {
                var x = document.getElementById("mySelect").value;
                alert(x);
            }
        </script>
    </body>
</html>

首次选择任何护理,例如:奥迪,然后它提醒奥迪,警告后再选择奥迪然后没有警报来。任何人都可以帮我解决这个错误吗?

6 个答案:

答案 0 :(得分:2)

由于您选择了相同的选项TWICE,因此selected的{​​{1}}对象没有变化。

尝试以下

更新了答案

Dropdown

小提琴 HERE

答案 1 :(得分:0)

当您尝试选择已选择的项目更改事件时,该事件将处于onchange状态。

答案 2 :(得分:0)

您忘记关闭选项标记并执行此操作,您需要将onclick事件处理程序附加到下拉列表中的所有选项,请参阅下文:

&#13;
&#13;
var x = document.getElementById("mySelect");

//attach onclick event handlers to options
for (var i = 0; i < x.options.length; i++) 
{
  if (x.options[i].addEventListener) 
  { 
    /*all other browsers*/
    x.options[i].addEventListener("click", function() {mysFunction(this)}, false);
  } 
  else if (x.options[i].attachEvent) /*ie < 9*/ 
  {
    x.options[i].attachEvent("click", function() {mysFunction(this)});
  }
}

//execute my alert box on item select
function mysFunction(elem) {
  alert(elem.value);
}
&#13;
<select id="mySelect">
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Mercedes">Mercedes</option>
  <option value="Volvo">Volvo</option>
</select>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您在寻找this??

吗?

添加以下代码

    $('option').click(function(){  
       alert($(this).text());
    });

不幸的是,上述方法无法在&#34; Chrome&#34;中尝试使用&#34; Internet Explorer&#34;或者&#34; Mozialla&#34; (因为这个原因,至少使用IE:p)

答案 4 :(得分:0)

使用演示进行更新: http://jsbin.com/hujavalayu/1/edit

我希望这能满足您的要求,请查看链接

Trigger the event when selected the same value in dropdown?

<p>Select a new car from the list.</p>
<select id="ddList" onClick="onSelect()">
    <option value="0">Select Me</option>
    <option value="List1">List1</option>
    <option value="List2">List2</option>
    <option value="List3">List3</option>
</select>


<script>
    var prevIndex = "";

    function onSelect() {
        var currIndex = document.getElementById("ddList").selectedIndex;
        if (currIndex > 0) {
            if (prevIndex != currIndex) {
                alert("Selected Value = " + document.getElementById("ddList").value);
                prevIndex = currIndex;
            } else {
                prevIndex = "";
            }
        }
    }
</script>

答案 5 :(得分:0)

您应该使用onclick="this.value=null"并定义onchange, 因此,每次选择任何选项时,它都会清除所选的项目,然后您可以再次选择相同的选项;)。 这是示例代码:

$serial_no = 0;

<select id="<?php echo $serial_no++; ?>" onclick="this.value=null" onchange="update_value(this.value,this.id)" class="form-control" required>
  <option><?php echo $row['card']; ?></option>
  <option>---------</option>
  <option>Pending</option>
  <option>Deliver</option>
</select>

update_value(item){
  alert(item);
}
相关问题