组合框交互中的jquery live方法
我正试图在Jquery中做下一件事。 我有两个组合框,我想确保它们选择的值是相同的。如果用户在其中一个组合中选择一个值,就像在另一个组合中一样,我想提醒“无效操作”,并将组合选择的值设置为其先前的值。 于是我写道:组合框交互中的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
$("#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()
函数。