替换.jquery中的.change?

时间:2013-02-13 19:37:33

标签: javascript jquery

我正在尝试触发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,但我认为事先也会发生火灾。

3 个答案:

答案 0 :(得分:4)

我认为.change()就是你想要的,但你却在滥用它。更改事件在值更改后触发。在处理程序中,您需要读取新值:

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

您还可以在<option>代码上设置值:

<option value="something"> Option 2</option>

答案 1 :(得分: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());
});

答案 2 :(得分:0)

警告,.change 现已失效,您应该使用...

.on('change', function()

就像那样。