簡體   English   中英

下拉onchange 選擇列表不起作用?

[英]drop down onchange selected list not working?

當我第二次選擇相同的選項時下拉不起作用。 這是我的代碼:

<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>

第一次選擇任何一個服務,例如:Audi,然后它會提醒Audi,再次提醒后選擇Audi則沒有任何提醒。 有人可以幫助我這有什么問題嗎?

由於您選擇了相同的選項兩次,因此Dropdown selected對象沒有變化。

嘗試如下

更新答案

var dd = document.getElementById('mySelect');          
var storeLstSlct = document.getElementById('checkIndx');
var slctdValue = '';   

if(dd.selectedIndex == 0)
{
    return false;
}else if(storeLstSlct.value == dd.options[dd.selectedIndex].value)
{              
    storeLstSlct.value = 'garbage'; 
    return false;              
}else
{                            
    slctdValue = dd.options[dd.selectedIndex].value;    
  alert(slctdValue); 
    storeLstSlct.value = slctdValue;              
}

小提琴在這里

當您嘗試選擇已選擇的項目時,該事件是 onchange 不會觸發。

您忘記關閉選項標簽,為此您需要將 onclick 事件處理程序附加到下拉列表中的所有選項,請參見下文:

 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); }
 <select id="mySelect"> <option value="Audi">Audi</option> <option value="BMW">BMW</option> <option value="Mercedes">Mercedes</option> <option value="Volvo">Volvo</option> </select>

你在找這個嗎??

添加以下代碼

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

不幸的是,上述方法在“Chrome”中不起作用,請在“Internet Explorer”或“Mozialla”中嘗試(由於這個原因至少使用了 IE :p)

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

我希望這能滿足您的要求,請檢查鏈接

在下拉列表中選擇相同的值時觸發事件?

<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>

您應該使用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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM