JQuery对ajax请求的改变

JQuery on change make ajax request

本文关键字:改变 请求 ajax JQuery      更新时间:2023-09-26

我有一堆选择作为过滤器,像这样

<select name="color" data-options="katalog.php?cat=3" class="filter">
    <option value="1">White</option>
    <option value="2">Green</option>
</select>

但是在Firebug中,我得到一个错误,不能弄清楚为什么

$('body').on("change", '.filter', function() {
    $('#mainstage').load($(this).data('options') + '&' + $(this).attr('name') + '=' + $(this).attr('value'));
})

您请求的url是"katalog.php?cat=3&color=undefined",因为您不应该使用attr()来读取值。使用jQuery的val()方法,这样你就可以得到被选中的选项的值。

... '=' + $(this).val())

错误发生在$(this).attr('value'),它试图获取选择元素本身的值属性,而不是获得所选值。查找所选文本或值

例子:

通过$(this).find(":selected").text()查找选定选项的文本值

$('body').on("change", 'select', function() {
     $('#mainstage').load($(this).data('options') + '&' + $(this).attr('name') + '=' + $(this).find(":selected").text());
})

例子:

通过$(this).val()获取所选选项的value属性

$('body').on("change", 'select', function() {
   $('#mainstage').load($(this).data('options') + '&' + $(this).attr('name') + '=' + $(this).val());
})

希望能有所帮助