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