0

我正在使用来自 jQueryUI 的可编辑自动完成组合框。具体来说,这个:http: //jqueryui.com/autocomplete/#combobox

如果用户选择现有选项,或在组合框中键入现有选项的名称,我可以像这样获取选定的文本和值:

var categoryCombo = $(row).find('.categoryComboBox');
    var selectedOption = $(categoryCombo).find('option:selected');

    var categoryName = ''; var categoryId = 0;

    if (selectedOption.length > 0) {
        categoryId = selectedOption.val();
        categoryName = selectedOption.text();
    }

这很好用。

但是,如果用户输入的文本不是组合框中的选项之一,我也想检索该文本。

我怎么做?

4

2 回答 2

0

好吧,我只是在我之前的回答中提出了一种更好的方法(即使用类似框架的淘汰赛..)

无论如何,在这种情况下,您可以通过以下方式获取值:

$('原始组合框的选择器').parents('.ui-widget').find('.ui-autocomplete-input').val();

Jquery UI 修改 dom 以添加文本类型的输入字段,该字段具有用户输入的值。

我希望这有帮助。

谢谢, 苏迪普托

于 2013-10-16T15:00:05.487 回答
0

如何将键入的文本动态添加到选择下拉列表中并不断更新最后一个选项值
JS -

// Add an option and a class to it which would set its visibility to hidden
$('<option class="jsHdnOption hide"></option>').appendTo('.categoryComboBox');
// Find appropriate event which would work for your case
$('.categoryComboBox').on('textchanged',function(){
   var typedText = $('.categoryComboBox').text();
   var hdnOption = $('.jsHdnOption');
   if(typedText!=null && $.trim(typedText)!=''){
      hdnOption.val(typedText);
      hdnOption.removeClass('hide');
   }else{
      hdnOption.addClass('hide');
      hdnOption.val('');
   } 
});

CSS

.hide { 
visibility : hidden;
}
于 2013-10-15T16:37:54.113 回答