2016-09-08 18 views
0

私はこのような一意のIDを持つ選択ボックスの配列を持っています。JSONデータを使用して選択オプションを設定するにはどうすればよいですか?

<select class="taskcompleted" id="c392018"> 
<option value="No">No</option> 
<option value="Yes">Yes</option> 
</select> 

私は形式でJSONを持って

{"id":"c392018","value":"Yes"} 

私が選択した値

$.getJSON('getstatus.php') //place correct script URL 
    .done(function(response) { 
     $.each(response, function(key) { 
      var SelectObj = response[key]; 
      console.log(SelectObj['value']); 
      jQuery('#' + SelectObj['id']).val(SelectObj['value']).attr('selected', true); 
      }); 
     }); 

これは、「はい」の値を選択されていない設定するには、次のJavascriptを使用しています。これどうやってするの?

+0

'.attr()'の代わりに '.prop()'を使ってみましたか? – StriplingWarrior

+2

名前で直接キーにアクセスする必要がある場合、 '$ .each'の理由はありません。 .value(response.id).attr( 'selected'、true); ' –

答えて

1

あなたは単にあなたのオブジェクトから値を使用して、選択したオプションを設定する)(.val使用する必要があります。

だからここであなたが持っている:

jQuery('#' + SelectObj['id']).val(SelectObj['value']).attr('selected', true); 

は次のようになります。

jQuery('#' + SelectObj['id']).val(SelectObj['value']); 

以下のスニペットの例を参照してください。

また、あなたが本当に項目の選択したプロパティをしたい場合は、あなたが使用する必要があります。

.prop("selected", "selected"); 

var SelectObj = {"id":"c392018","value":"Yes"}; 
 
jQuery('#' + SelectObj['id']).val(SelectObj['value']).prop('selected','selected');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="taskcompleted" id="c392018"> 
 
    <option value="No">No</option> 
 
    <option value="Yes">Yes</option> 
 
</select>

1

さて、あなたは本当にここにjQueryを必要としません。

var select = document.getElementById(SelectObj.id); 
select.value = SelectObj.value; 
+0

' getElementById'を呼び出すときに '#'を使わないでください。 – Barmar

+1

あなたは 'forEach'を使う必要はありません。 'select.value = SelectObj.value'だけ行うことができます。 – Barmar

+0

@Barmarええ、私の悪い。更新しました、ありがとう! – reillyethan

関連する問題