2013-09-07 15 views
7

私はjquery 1.8.2とjqueryui 1.9.0ライブラリを使用しています。jqueryオートボックスのテキストボックス設定値をプログラムで

jquery-uiのオートコンプリートテキストボックスを含む「レコードの編集」ダイアログをテーブルに追加しようとしています。

また、オートコンプリートの変更イベントを使用して、指定されたリストからアイテムを選択するユーザーを制限します。

私の編集フォームを表示するときに、既存のデータをテキストボックスに設定していますが、編集フォームで別のフィールドをクリックすると、何も変更されずにエラーがポップされます。私はコンボボックスタイプのオートコンプリートの値を設定する方法を示す多くのサンプルを見つけましたが、テキストボックスタイプのものを見つけることができませんでした。この問題で私を助けてください、私はあなたの答えが他のユーザーにも役立つと思います。ここ

は、オートコンプリートテキストボックスのために私のコードです:

$("#EditMaterialName").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       url: "someurl", 
       dataType: "json", 
       data: { 
        search_string: request.term 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          label: item.description, 
          value: item.description 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function (event, ui) { 

     }, 
     change: function (event, ui) { 
      if (!ui.item) { 
       $('<div class="error"><b> please select a listed value.</b><div>').insertAfter('#EditMatName'); 
       $('#EditMaterialName').val(''); 
      } 
     }, 
     open: function() { 
      $(this).removeClass('ui-corner-all').addClass('ui-corner-top'); 

     }, 
     close: function() { 
      $(this).removeClass('ui-corner-top').addClass('ui-corner-all'); 

     } 
    }); 

、ここでは、レコード編集ダイアログを表示するためのコードです:

$('a.edit_link').live("click", function() { 

     clearEditMaterialForm(); 

     //loading selected value 
     var valMaterialName = $(this).closest('tr').children('td.cl_material_name').text(); 

     $('#EditMaterialName').val(valMaterialName); 

    }); 

は、あなたの答えをどうもありがとうございました。

答えて

9

それは多分それは正しくないのです、美しいではないのですが、それは働いている:

function setAutocompletCurrentValue(id, value) { 
    $(id).val(value); 
    var textToShow = $(id).find(":selected").text(); 
    $(id).parent().find("span").find("input").val(textToShow); 
} 

はそれがお役に立てば幸いです。

+0

これはとても楽しく、うまくいきます。本当にありがとうございました。 – Ali

+0

Perfect。よく働く。 –

+0

大変感謝して、私の髪を引き出し始めましたが、これはまだ動作します。 – jared

関連する問題