下面的Javascript代码用于显示内容,这取决于用户从下拉列表中选择了什么-当用户更改下拉列表中的值并在#disp中的display.php中显示代码时,它会触发。
<script type="text/javascript">
$(document).ready(function() {
$('#choose').change(function() {
if($(this).val() != '') {
$.ajax({
type: 'get',
url: 'display.php',
data: { 'value' : $(this).val() } ,
success: function(data) {
$("#disp").html(data);
}
});
}
});
});
</script>
问题是,有时候,当表单加载一个已经激活的选项时,我会预先填充下拉菜单,因为#choose的值没有改变,所以不会调用javascript。我可以使用load(function() ),但它不会在更改时触发。
当用户更改内容时,以及在同一调用中加载值不为0/null/空的情况下,如何触发相同的代码?
谢谢
发布于 2013-06-25 10:22:19
以编程方式触发更改函数:
$('#choose').change(function() {
// your code
}).change(); // will trigger when DOM is ready
发布于 2013-06-25 10:22:34
var chooseVal = $('#choose').val();
if(chooseVal != null || chooseVal != 0) $('#choose').trigger('change');
发布于 2013-06-25 10:24:59
在不同的函数中分离调用,然后在加载时执行它。就像这样..。
function onchange() {
if($(this).val() != '') {
$.ajax({
type: 'get',
url: 'display.php',
data: { 'value' : $(this).val() } ,
success: function(data) {
$("#disp").html(data);
}
});
}
}
$(document).ready(function() {
$('#choose').change(function() {
onchange.call(this);
});
onchange.call(document.getElementById("choose"));
});
https://stackoverflow.com/questions/17294668
复制