2017-05-17 13 views
0

をsubmitedされているのであれば、私は次のようSELECT2があります。デフォルトでは選択2変更入力名タグは

productFamilySelect.select2({ 
      tags: true 
     }); 

関連したselect要素の名前はproduct_family_idので、入力の名前を変更する方法があります例えば、product_family_nameと入力した場合、選択した値が入力されていますか?これは、すでに存在している価値と、ユーザーが考えていた価値を確実に区別するために、バックエンドで行うことができるようなものです。この値は実際には数値である可能性があるため、データベース内のIDによるチェックは実際には適していません。

は、まず、そのようcreateTagコールバックを追加します:

productFamilySelect.select2({ 
      tags: true, 
      createTag: function (params) { 
       var term = $.trim(params.term); 

       if (term === '') { 
        return null; 
       } 
       return { 
        id: term, 
        text: term, 
        newTag: true 
       } 
      } 
     }); 

次に、以下のリスナーを追加します。

productFamilySelect.on('select2:select', function (e) { 
      if (e.params.data.newTag === true) { 
       $(this).attr('name', 'product_family_name'); 
      } else { 
       $(this).attr('name', 'product_family_id'); 
      } 
     }); 

はそう

答えて

0

は、いくつかのSELECT2カスタムイベントに掘り後、私は方法を見つけましたそれは実際のselect2の設定の外にあるので、ちょっとハッキーですが、うまくいけばそれは仕事です:

関連する問題