2016-06-30 8 views
-1

これは、フォーム要素をその属性とともに作成するMy forms fieldsオブジェクトです。 jQueryのをポストでデータベースに提出するJavascript Select Option Valueを取得するには

var model = vehicle.extend(vehicle.compare, { 

fromFields:[{ 
    id: 'vehicle', 
    label: 'Vehicle', 
    name: 'vehicle', 
    type: 'select', 
    options: [ 
     {label: 'KBS999H', value:'BU'}, 
     {label: 'KBB343T', value:'LO'}, 
     {label: 'KBD342H', value:'YU'} 
    ] 
},{ 
    id: 'modelId', 
    label: 'Vehicle Model', 
    name: 'model', 
    type: 'select', 
    options: [ 
     {label: 'TOYOTA', value:'TT'}, 
     {label: 'VOXY', value:'VO'}, 
     {label: 'MISTUBISHI', value:'MIST'}, 
     {label: 'SUBARU', value:'SU'} 
    ] 
},{ 
    id: 'price', 
    label: 'Price', 
    name: 'price', 
    type: 'number' 
}] 

}); 

使用せず以下のように私はこれは私がフォームを送信しようとしていますフレームワークの一部であるのdocument.getElementById()メソッドによって、フォームからの選択オプションの値を取得しようとしています

submitForm: function(){ 
    var me = this; 

    var formValues = me.fromFields.filter(function(el){ 

     if (el.type == 'select' && el.options){ 
      //to get the selected value 
      var select = document.getElementById(el.options[name]).value; 

     console.log(me.fromFields.id); 

     } 

     var formEl = me.getEl(el.id); 
     if(formEl && formEl.value) 
      return el; 

    }).map(function(el){ 
     var formEl = me.getEl(el.id); 
     return encodeURIComponent(el.name) + '=' 
      + encodeURIComponent(formEl.value); 

    }).join('&'); 

    me.ajaxRequest.call({ 
     httpMethod: 'POST', 
     httpUrl: me.formUrl, 
     requestParams: formValues, 
     responseTarget: me.responseTarget, 
     updateTarget: function(resp){ 
      if(me.aftersubmit) 
       me.aftersubmit(); 
     } 
    }); 

} 

にエラーが発生しました

TypeError: document.getElementById(...) is null

var select = document.getElementById(el.options[name]).value;

+0

あなたはこのコードを呼び出していますか? Nullは要素が存在しないことを意味します。 – skyline3000

+0

選択フィールドの値を使用します。あなたはオプションの値を明示的に提出しません。それはユーザーが選択するためのものです。そして、その値は、提出の準備ができた選択値に割り当てられます。 – ManoDestra

答えて

0

あなたは正確に何をしようとしていますか?

あなたは次のように選択フィールドの値を取得することができます:要素がページ上に存在する前に

var select = document.querySelector('select'); 
// Selected string value. 
var selected = select.value; 
// Selected option element. 
var selectedOptionElement = select.options[select.selectedIndex]; 
関連する問題