0

下面的 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/blank 时触发相同的代码?

谢谢

4

4 回答 4

10

以编程方式触发更改功能:

$('#choose').change(function() {
  // your code
}).change(); // will trigger when DOM is ready
于 2013-06-25T10:22:19.347 回答
2
var chooseVal = $('#choose').val();
if(chooseVal != null || chooseVal != 0) $('#choose').trigger('change');
于 2013-06-25T10:22:33.957 回答
1

在不同的函数中分离调用,然后在加载时执行它。像这样的东西...

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"));
});
于 2013-06-25T10:24:58.703 回答
0

$('#choose').change();在预填充选择框后尝试。这应该会触发更改处理程序。

于 2013-06-25T10:22:50.653 回答