2016-05-30 79 views
0

我有一个奇怪的问题。问题是onclick事件正在工作,但onchange在下拉列表中不起作用。在这里我使用jquery从php获取下拉值。可能是什么问题呢?Onclick正在工作,但Onchange不工作 - javascript

的Javascript:

<script> 
    //dropdown list values 
    $(function() { 
    $("#skills").autocomplete({ 
    source: <?php print_r(json_encode($options)); ?> 
    }); 
    }); 

    function myfunction() 
    { 
     alert('hi'); 
    } 
</script> 

HTML:

<div class="ui-widget"> 
     <label for="skills">Chip ID:</label>​ 
     <input id="skills" onchange="myfunction()"> 
</div> 

感谢。

+0

看到这个答案:http://stackoverflow.com/a/13601584/2159528 –

回答

1

这是因为动态填充下拉菜单,所以使用jQuery .on()

您应使用:

$(document).on('change', '#dropdown', function(){ 
    alert("onChnage [using .on()]"); 
}); 

例子:

$(document).on('change', '#dropdown', function(){ 
 
    alert("onChnage [using .on()]"); 
 
}); 
 

 

 

 
/* dynamic drop-down */ 
 
var selectField = $('#dropdown'); 
 
var empIds = [101, 102, 103]; //values 
 
var empNames = ['X', 'Y', 'Z']; //text 
 
var options = ''; 
 
selectField.empty(); 
 
for (var i = 0, len = empIds.length; i < len; i++) { 
 
    options += '<option value="' + empIds[i] + '">' + empNames[i] + '</option>'; 
 
} 
 
selectField.append(options);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="dropdown"> 
 
</select>

0

我认为这个问题可能是你不处理常规降下拉列表中,你正在使用一个jQuery插件不使用标准字段。如果这是同一个插件,我知道那么你想这个:

$(function() { 
    $("#skills").autocomplete({ 
    source: <?php print_r(json_encode($options)); ?> 
    }).result(function(event, data, formatted) { 
    window.alert(data);//do something with the selected value 
    } 
});