3

我正在尝试触发 ajax 事件,并将选择列表选项的值作为参数传递给 ajax 调用。不幸的是,我在 .change 事件上触发了调用,它在选择新选项之前传递了 select 选项的值(即传递先前选择的选项值)。是否有事件可以获取所选选项的当前值?非常感谢提前,

<select id='theList'>
   <option> Option 1</option>
   <option> Option 2</option>
</select>

在 JS 中:

$('#theList').change( function() {
$.getJSON('Home/MethodName', { var1: Option1Value, var2: MiscValue}, function(data) {
      //Execute instructions here
}
)});

我想使用.trigger,但我认为它也会提前触发。

4

3 回答 3

4

I think .change() is what you want, but you're misusing it. The change event fires after the value has changed. In your handler, you need to read the new value:

$('#theList').change( function() {
  var value = $('#theList').val();
  $.getJSON('Home/MethodName', { your_key: value }, function(data) {
      // ...
  }
)});

You also might want to set values on your <option> tags:

<option value="something"> Option 2</option>
于 2013-02-13T19:40:24.770 回答
0

获取当前选择值时,您一定做错了什么。以下对我来说是正确的。

http://jsfiddle.net/TJ2eS/

<select id="demo">
    <option value=""></option>
    <option value="a">A</option>
    <option value="b">B</option>
    <option value="c">C</option>
</select>

$("#demo").change(function() {
    alert("current select value " + $(this).val());
});
于 2013-02-13T19:43:39.343 回答
0

一个警告,.change现在已经失效了,你应该使用...

.on('change', function()

像那样。

于 2021-07-06T22:12:36.967 回答