私はまだJQuery、Javascriptに慣れていませんが、これは私が持っているものです:
これが私のスクリプトです:
/* Check for zip code input */
$('#editZipCode').keyup(function() {
var inputString = $('#editZipCode').val();
if(inputString.length == 5) {
$.ajax({
url: base_url+"/zip_code_search/"+inputString,
success: function(data) {
if(data.length > 0) {
var parts = data.split(':');
$('select[name="city"] option').filter(function() { return $(this).text() == parts[0]; }).prop('selected', true);
$('select[name="state"] option').filter(function() { return $(this).text() == parts[1]; }).prop('selected', true);
}else{
$('select[name="city"] option[value="0"]').prop('selected', true);
$('select[name="state"] option[value="0"]').prop('selected', true);
}
}
});
}else{
$('select[name="city"] option[value="0"]').prop('selected', true);
$('select[name="state"] option[value="0"]').prop('selected', true);
}
});
これが私のhtmlです:
<form action="" method="">
<input type="text" id="editZipCode" name="zip_code">
<select id="StateOption" name="state">
<option value="0">-Select-</option>
<option value="AK">AK</option>
<option value="AL">AL</option>
<option value="AR">AR</option>
<option value="AZ">AZ</option>
</select>
<select id="CityOption" name="city">
<option value="0">-Select-</option>
<option value="ADAK">ADAK</option>
<option value="AKIACHAK">AKIACHAK</option>
<option value="AKIAK">AKIAK</option>
</select>
</form>
私が直面している問題は、CityOptions ドロップダウンの選択されたオプションが設定されないことです。StateOptions ドロップダウンは正常に機能します。
郵便番号を入力すると、StateOption ドロップダウン ボックスが、CityOption ではなく、ajax 呼び出しから返されたものと一致するものに設定されます。
パーツ[0]またはパーツ[1]をコンソールに記録すると、入力フィールドに入力された郵便番号に一致する市/州が両方とも出力されますが、市オプションではなく、州オプションのみが一致する値に設定されます.
ここで明らかな何かが欠けているだけですか?
前もって感謝します!
ps http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.jsを使用していますが、それが重要ですか?