我需要根据选择的国家/地区来喂养城市。我以编程方式做到了,但不知道如何将 JSON 数据放入选择框中。我尝试了几种使用 jQuery 的方法,但都没有奏效。
我得到的回应(如有必要,我可以采用不同的格式):
["<option value='Woodland Hills'>Woodland Hills<\/option>","<option value='none'>none<\/option>","<option value='Los Angeles'>Los Angeles<\/option>","<option value='Laguna Hills'>Laguna Hills<\/option>"]
但是如何将这些数据作为选项放入 HTML<select></select>
标签中呢?
我试过的代码:
<form action="" method="post">
<input id="city" name="city" type="text" onkeyup="getResults(this.value)"/>
<input type="text" id="result" value=""/>
<select id="myselect" name="myselect" ><option selected="selected">blank</option></select>
</form>
</div>
<script>
function getResults(str) {
$.ajax({
url:'suggest.html',
type:'POST',
data: 'q=' + str,
dataType: 'json',
success: function( json ) {
$('#myselect').append(json);
}
});
};
$( '.suggest' ).keyup( function() {
getResults( $( this ).val() );
} );
</script>
我还尝试使用本教程使用 jQuery 和 AJAX 自动填充选择框,但除了用“未定义”填充我的选择之外,这从来没有做任何事情,即使我得到了教程建议的格式的响应。
<script type="text/javascript" charset="utf-8">
$(function(){
$("select#city").change(function(){
$.getJSON("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
$("select#myselect").html(options);
})
})
})
</script>