0

我正在尝试在 Jquery 中做下一件事。我有 2 个组合框,我想确保它们选择的值是相同的。如果用户在其中一个组合中选择一个值,就像另一个一样,我想提醒“无效操作”并将组合选择的值设置为其先前的值。所以我写道:

$("#SelectGroupMargin").live("onchange", function() {
   // save the value before the change in case the change is invalid
   var valBeforeChange = $("#SelectGroupMargin").val();
   var currentLimitedRuleVal =  $("#SelectGroup").val();
   var newFillerRule= $(this).val();

   // check that the new value does not colide with the value of the limited rule
   // if it does colide alert the user and return to the former value
   if (currentLimitedRuleVal == newFillerRule) {
     alert("invalid op");
     $("#SelectGroupMargin").text(valBeforeChange);
   } 
});

但我有几个问题:1)onchange 没有响应 - 只需单击并聚焦 2)newFillerRule 始终与 valBeforeChange 相同

你有更好的想法/更短的建议吗谢谢你

4

2 回答 2

1

尝试在方法中使用change而不是。另外,如果我没记错的话,您需要 jQuery 1.4+ 才能与 change 事件一起使用,因为代码仅在 1.4+ 中实现以处理事件的委托。onchangelive()livechange

在将新选择的值与最后选择的值进行比较方面,您可以考虑存储选择的值以供使用$.data()- 然后您可以将更改事件之后的值与存储在 $.cache 中的值进行比较(其中 $.data()存储值)并执行必要的操作。你也可以使用闭包来实现它。

于 2010-02-28T08:51:25.393 回答
0

$("#SelectGroupMargin") 在该函数的上下文中与 $(this) 相同。并使用“更改”进行实时通话

于 2010-02-28T08:54:26.290 回答