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


入力したテキストを選択ドロップダウンに動的に追加し、最後のオプション値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 に答える
0

以前の回答でより良いアプローチを提案しただけです(つまり、フレームワークのようなノックアウトを使用します..)

とにかく、この場合、次の方法で値を取得できます。

$('生のコンボ ボックスのセレクター').parents('.ui-widget').find('.ui-autocomplete-input').val();

Jquery UI は dom を変更して、ユーザーが入力する値を持つテキスト型の入力フィールドを追加します。

これが役立つことを願っています。

ありがとう、スディプト

于 2013-10-16T15:00:05.487 に答える