【发布时间】:2012-06-16 21:50:21
【问题描述】:
我正在尝试根据组合框中的更改事件更新隐藏的输入项。我有一堆下拉列表,如果它们属于某个类(“test1”),我将动态更改为组合框。我想补充一点,我正在使用我在这里找到的一些 jquery 来获得一个“打开”组合框......即一个将接受任何用户输入,而不仅仅是选项列表中可用的内容。为此,我使用了此处提供的 javascript:jQuery combobox/autocomplete but editable
但是,只有以下一种有效...
$(document).ready(function () {
$(".test1").combobox();
});
$(document).ready(function () {
$(".test1").change(function () {
alert('test'); //Other logic to update hidden elements.
}
);
});
如果我注释掉这个函数,它会将下拉菜单变成一个组合框,然后警报就会触发。如果我关闭警报功能,组合框调用将起作用,并且下拉列表变为组合框。任何人都可以提出解决方案吗?
更新:
我知道为什么这不起作用(至少我是这么认为的)。在上面的链接中,已经处理了组合框的更改行为。我的额外更改事件处理程序未注册。我必须将我的代码添加到更改事件本身中(就像这个 sn-p):
change: function (event, ui) {
var selset = "CHF Discharge Diagnosis";
$(':hidden').filter($('input[selsetname="' + selset + '"]')).val(this.value);
alert($(':hidden').filter($('input[selsetname="' + selset + '"]')).val());
if (!ui.item) {
var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "i"),
valid = false;
【问题讨论】:
-
也许尝试将
$('.test1').combobox();放入更改函数中? -
您需要提供更多详细信息,但如果您使用 javascript 更改输入值,onchange 事件将不会触发。
-
您只需要一个文档准备功能。你所有的功能都在里面。
-
他们真的需要在不同的 $(document).ready 函数中吗?尝试将它们放在同一个中。然后你可以链接它们:
$('.test1').change(function(){...}).combobox();。另外,您能指定您使用的是哪个组合框插件吗?我找到了一些同名的,我想确保我们知道你在使用什么。 -
我在关于如何使用组合框的问题中添加了一些额外信息。另外,lbstr,我确实尝试将它们放在一个 javascript 函数中。那没有用。