如何在另一个函数中访问选择框的值作为变量onChange

时间:2013-12-14 17:28:15

标签: javascript jquery ajax

我想在ajax中访问#schooSelect的值,这样我就可以将一些数据发送到php onChange。

$.LoadBooks = function () {
    $(document).on('change', '#SchoolSelect', (function (e) {
        var SchoolVal = ($(this).val())
        $.LoadBooks()
    }))
    var SchoolVal = ($('#SchoolSelect').val())
    $.ajax({
        type: "GET",
        data: {
            data: SchoolVal
        },
        url: "../php/booksads.php"
    }).done(function (feedback) {
        $('#booksads').html(feedback)
    });
}
$.LoadBooks()

1 个答案:

答案 0 :(得分:0)

您的代码结构奇特。你以某种方式“递归地”在事件处理程序中调用$.LoadBooks,这将导致一个新的事件处理程序被添加到元素中,这肯定不是你想要的。

在函数外部绑定事件处理程序一次:

var loadBooks = function(schoolVal) {
    $.ajax({
        type: "GET",
        data: {
            data: schoolVal
        },
        url: "../php/booksads.php"
    }).done(function (feedback) {
        $('#booksads').html(feedback)
    });
}

$(document).on('change', '#SchoolSelect', function(e) {
    loadBooks($(this).val());
});

您可以将select元素的值传递给函数(如此处所示),也可以在其中调用var schoolVal = $('#SchoolSelect').val()来获取值。


约定是只有构造函数的名称以大写字母开头。如果您的函数特别与jQuery相关,则不应将其添加到$