我有一个奇怪的问题。问题是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>
感谢。
答案 0 :(得分: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);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dropdown">
</select>
&#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
}
});