组合框交互中的jquery live方法

组合框交互中的jquery live方法,jquery,combobox,live,onchange,Jquery,Combobox,Live,Onchange,我正试图在Jquery中做下一件事。 我有两个组合框,我想确保它们选择的值是相同的。如果用户在其中一个组合中选择一个值,就像在另一个组合中一样,我想提醒“无效操作”,并将组合选择的值设置为其先前的值。 于是我写道: $("#SelectGroupMargin").live("onchange", function() { // save the value before the change in case the change is invalid var valBeforeCha

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

$("#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) 新FillerRule始终与更改前的值相同

你有更好的主意/建议吗
谢谢你

尝试在
live()
方法中使用
change
而不是
onchange
。另外,如果我的记忆正确,您需要jquery1.4+来使用
live
更改事件,因为代码仅在1.4+中实现,用于处理
change
事件的委派


在将新选择的值与最后选定的值进行比较时,您可以考虑将选定值存储到使用中,然后可以将更改事件后的值与存储在$.Cache中的值进行比较(其中$.DATA()存储值)并执行必要的操作。您也可以使用闭包来实现它。

$(“#SelectGroupMargin”)在该函数的上下文中与$(this)相同。在现场通话中使用“change”(更改)

我认为一些可以接受的语法和拼写可以帮你解决更多问题。我们高度重视格式良好的问题。4个空格,但是这里的FAQ不会告诉你句子是以大写字母开头的。@Joseph Silvashy:世界上不是每个人都能说一口流利的英语。有些人在用外语表达他们想表达的东西时有困难。没有必要攻击。这很公平,但我不知道leet speak比英语更受欢迎。“我想,如果我在一个以说话为主的社区寻求帮助,我会对自己更重要。”约瑟夫·西尔瓦希。从什么时候起,“leet”就出现在牛津字典里了。吃你自己的狗粮。测试一下,它的效果和你的问题预期的一样。我会仔细检查你的语法,也许你有其他代码影响你给我们的示例。它确实适用于1.4+。如何获取更改前选择的值?您需要观察
单击
事件,获取其值,然后将其与更改后的值进行比较。事实上,在您的案例中根本不需要
live()
函数。