我试图根据组合框中的更改事件更新隐藏的输入项。我有一堆下拉菜单,如果它们属于某个类(" test1"),我将动态更改为组合框。我想补充说我正在使用一些jquery,我在这里找到了一个" open"组合框....即。一个将接受任何用户输入而不仅仅是选项列表中可用的内容。我使用此处提供的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.
}
);
});
如果我注释掉该功能,将下拉列表转换为组合框,则警报会触发。如果我关闭警报功能,组合框调用将起作用,下拉列表将变为组合框。有人可以建议一个解决方案吗?
更新
我弄清楚为什么这不起作用(至少我是这么认为的)。在上面的链接中,已经处理了组合框的更改行为。我的额外更改事件处理程序未注册。我不得不将我的代码添加到更改事件本身(如此代码段):
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;
答案 0 :(得分:0)
如果组合框正在改变html结构(例如创建ul或div元素而不是形式选择和输入),那么它可能不会触发那些元素的更改事件。但是在这里:http://jquery.sanchezsalvador.com/jquery/page/jquerycomboboxapi.aspx底部是onChange
方法的代码段。基于此尝试以下
$(document).ready(function () {
var cb = $(".test1").combobox();
cb.combobox.onChange = function() {
alert('test'); //Other logic to update hidden elements.
};
});
答案 1 :(得分:0)
我想我弄清楚为什么这不起作用(至少我是这么认为的)。在定义UI小部件的链接(http://stackoverflow.com/questions/9473268/jquery-combobox-autocomplete-but-editable)中,已经处理了组合框的更改行为。我的额外更改事件处理程序未注册。我不得不将我的代码添加到更改事件本身(如此代码段):
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;