Onclick正在工作,但Onchange不起作用 - javascript



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

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>

谢谢。

这是因为动态填充的下拉列表,所以使用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>

我认为

问题可能是您没有处理常规下拉列表,而是正在使用不使用标准字段的 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
   }
});   

最新更新