2016-08-05 10 views
0

動的なオプションを持つselect型の列でグリッドを作成しようとしています。オプションは、フォームの編集が表示された後に入力されます。jqGridのダイアナミックセレクトの値がサブミットされていません

私の考えはthis答えに記載されているdataInitイベントを使用することでした。

列のモデルである:

{name: 'bad', index: 'bad', editable: true, edittype: 'select', 
    editoptions: { 
    dataInit: function(elem) { 
     setTimeout(function() { 
     $(elem).empty() 
      .append("<option value='1'>Option 1</option>") 
      .append("<option value='2'>Option 2</option>"); 

     }, 50); 
    } 
    } 

オプション正しく形態に移入されているが、提出するとき、選択フィールドの値をコントローラに送信されません。私は動的に構築される、選択のためのvalue: {}を使用することをお勧めいたしますでしょうhttp://fiddle.jshell.net/6zaHp/137/

+0

**あなたがjqGridのどのフォークから([無料jqGrid](https://github.com/free-jqgrid/jqGrid)を使用するとjqGridのバージョン、商用の[Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)またはいくつかのバージョンの古いjqGrid?= 4.7?** editable:true'オプションを設定する場所?私はあなたが 'アドレス' ' 'を設定し、ユーザーはアドレスを手動で選択します –

+0

申し訳ありませんが、無料のjqGridを開発しています。サポートリクエストは[Guriddo forum](http://guriddo.net/?page_id=4)に投稿できます。あるいは、同じ問題が無料のjqGridにも存在するかどうかを検証することができます。 [uiki.jqgrid.css'、 'grid.locale-en.js'、' jquery.jqgrid.src.js'に変更するだけで済みます。[wiki記事](https://github.com)/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDN)を参照してください。同じ問題が無料のjqGridに存在する場合、私はあなたを助けようとする可能性があります。そうでなければ、おそらくGuriddo JSのバグでしょう。 – Oleg

答えて

1

beforeSubmit: function(data, id) { 
    alert(JSON.stringify(data)); 
    // Alerts:  {"":"1","list_id":"_empty"} 
    // Notice that "" should be "bad" 
} 

はテストそれを自分:私が送信されてdataオブジェクトを表示するためにbeforeSubmitイベントを使用していました。設定jqGridなし

{name: 'bad', editable: true, edittype: 'select', 
    editoptions: { 
    value: {}, // <-- Added this line 
    dataInit: function(elem) { 
     setTimeout(function() { 
     $(elem).empty() 
       .append("<option value='1'>Option 1</option>") 
       .append("<option value='2'>Option 2</option>"); 
     }, 50); 
    } 
} 

<select>name属性のようないくつかの必要な属性を設定しないでください。 name属性は、サーバーに送信される結果のJSONデータのプロパティ名を構築するために使用されます。

がここに対応するデモを更新参照:http://fiddle.jshell.net/6zaHp/139/

関連する問題