jQuery - 代码在更改时部分工作选择,为什么?

时间:2011-10-20 11:20:12

标签: jquery

我在html代码中有这个:

<select name="t" id="t">
<option value="6">test2</option>
<option value="0">Overall</option></select>

<select name="m" id="m">
<option value="9">something to change</option>
<option value="0">back to Overall</option></select>

<div id="main"></div>

我想自动更改当用户将选择“m”的值更改为“0”时,选择“t”为值“0”。所以我有一个jQuery脚本:

$(function(){
  $('#m, #t').change(function(){
      if($('#m').val() == '0') {
      $('#t').val('0').change();
      $("<div>succes!</div>").appendTo("div#main"); }        
  });
});

但是这个脚本只是部分工作。脚本不显示“成功”的信息!更改后选择。为什么呢?

你也可以在这里看到:http://jsfiddle.net/SQvua/

3 个答案:

答案 0 :(得分:3)

您需要从此处删除.change()部分:

$('#t').val('0').change();

没有“更改”插件,因此它会导致运行时错误,其余代码无法执行。

<强> Updated fiddle

答案 1 :(得分:1)

$(function(){
  $('#m, #t').change(function(){
      if($('#m').val() == '0') {
      $('#t').val('0');
      $("<div>succes!</div>").appendTo("div#main"); }        
  });
});

答案 2 :(得分:0)

那是因为你做了一些递归。

更改第二个选择框时检查控制台:

http://jsfiddle.net/SQvua/2/