2016-08-29 10 views
1

jqueryでselectオプションを設定しようとしていますが、正しく動作しません。実際には値が設定されていますが、テキストは更新されません。Jquery変更の選択値が機能しない

、選択

<select class="input-field" id="equip_type" name="equip_type"> 
    <option value="" disabled selected>Tipo de Equipo </option> 
    <option value="0">equip_type_other</option> 
    <option value="1">equip_type_desktop</option> 
    <option value="2">equip_type_laptop</option> 
    <option value="3">equip_type_tablet</option> 
    <option value="4">equip_type_printer</option> 
</select> 

である私はAjaxの機能の中にオプションを設定するつもりだ私は.prop('selected',true).attr('selected',true).prop('selected','selected').val().val().change()で試してみましたが、nothigはここ

を動作するようですその値は関数から来たものです。これは私が現在試みているものです

$('#equip_type').val(data.equipType).change(); 

私は他のフォームと同じ方法を使用していますが、この1つはこの真偽を引き起こしています。私は行方不明のものがありますか?オプション値を喜ばことができますし、それが動作する値で

+0

私は思います元気Webページにある実際にレンダリングされたHTMLを与えるだけです。 –

+0

あなたの 'change()'メソッドを見せてください。 'data.equipType'がレンダリングされると、htmlにある値と同じであることを確認してください。 – bipen

+0

data.equipTypeが値と等しいと確信しています。私はconsole.logを使用してdata.equipTypeと選択された値を表示します。つまり、値が実際には変化しているが、テキストではないことがわかっています –

答えて

0
$('#equip_type').val(data.equipType).trigger('change'); 
+0

私はそれを試しましたが、まだ動作していません。 –

0
$('#equip_type option[value="value"]'); 

+0

このメソッドは設定しません。 –

3

これで十分です:あなたが持っている、

$('#equip_type').val(data.equipType) 

しかし:

<option value="${equipType.value}">${equipType.toString()}</option> 

、これが問題、.valのパラメータは、()の代わりに、オプションフィールドの値でなければなりませんテキスト値を使用します。

だから、あなたはフィルタリングすることができる:

 $('#equip_type option').filter(function() { 
      return this.textContent == 'equip_type_tablet' 
     }).prop('selected', true); 

マイスニペット:

$(function() { 
 
    $('#equip_type option').filter(function() { 
 
    return this.textContent == 'equip_type_tablet' 
 
    }).prop('selected', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<select class="input-field" id="equip_type" name="equip_type"> 
 
    <option value="" disabled selected>Tipo de Equipo </option> 
 
    <option value="0">equip_type_other</option> 
 
    <option value="1">equip_type_desktop</option> 
 
    <option value="2">equip_type_laptop</option> 
 
    <option value="3">equip_type_tablet</option> 
 
    <option value="4">equip_type_printer</option> 
 
</select>

+0

いいえキャッチ... +1 – bipen

+0

私は同じ結果を得ます。選択した値が正常に変更されます。しかし、テキストは更新されません。というのは。値は "3"に変わりますが、テキストには "Tipo de Equipo"と表示されます。私は本当に何が間違っているのかわからない。 –

+0

ええ、私は実際にそれをやっている。私はconsole.logを使って 'data.equipType'を表示し、次に' $( '#equip_type')。val() 'を表示して一致します –

0
$('option:selected', '#my_select').val(); 

第1のセレクタ - 2番目の子、 - 親

+0

このコードを読んでいただきありがとうございます(適切な説明)(https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は、なぜこれがなぜそれであるかを示すことによって、長期的な価値を大幅に改善するでしょう。問題に対する良い解決策を提供し、今後の読者には他の同様の質問をするとより有用になります。[回答を編集](https://stackoverflow.com/posts/47669687/edit)あなたが作った前提を取り除く。 – Melebius

関連する問題