Onclick正在运行,但Onchange无法运行 - javascript

时间:2016-05-30 02:51:26

标签: javascript jquery html function

我有一个奇怪的问题。问题是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>

感谢。

2 个答案:

答案 0 :(得分:1)

这是因为动态填充下拉列表,因此请使用jQuery .on()

您将使用:

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

示例:

&#13;
&#13;
$(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);  
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dropdown">
</select>
&#13;
&#13;
&#13;

答案 1 :(得分: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
   }
});