我想要完成的是以下內容:Jquery國家/州Json和更多
我有一個國家框。
<select class="country singleListBox" name="Country">
<option value="UNITED STATES">UNITED STATES</option>
<% Call GetCountry %>
</select>
所有GetCountry都會將其填入客戶端啓用的國家/地區。
我有一個狀態框。
<select class="autoship singleListBox" name="State">
<option value="active">Utah</option>
</select>
我有一個頁面構建出的JSON將包含所選國家的狀態列表,或者返回一個空值。
這裏是什麼樣子沒空:
{
"regions": [
{
"region": "AK"
},
{
"region": "AL"
},
{
"region": "AR"
},
{
"region": "AS"
},
{
"region": "AZ"
},
{
"region": "CA"
},
{
"region": "CO"
},
{
"region": "CT"
},
{
"region": "DE"
},
{
"region": "DC"
},
{
"region": "FM"
},
{
"region": "FL"
},
{
"region": "GA"
},
{
"region": "GU"
},
{
"region": "HI"
},
{
"region": "ID"
},
{
"region": "IL"
},
{
"region": "IN"
},
{
"region": "IA"
},
{
"region": "KS"
},
{
"region": "KY"
},
{
"region": "LA"
},
{
"region": "ME"
},
{
"region": "MH"
},
{
"region": "MD"
},
{
"region": "MA"
},
{
"region": "MI"
},
{
"region": "MN"
},
{
"region": "MS"
},
{
"region": "MO"
},
{
"region": "MT"
},
{
"region": "NE"
},
{
"region": "NV"
},
{
"region": "NH"
},
{
"region": "NJ"
},
{
"region": "NM"
},
{
"region": "NY"
},
{
"region": "NC"
},
{
"region": "ND"
},
{
"region": "MP"
},
{
"region": "OH"
},
{
"region": "OK"
},
{
"region": "OR"
},
{
"region": "PW"
},
{
"region": "PA"
},
{
"region": "PR"
},
{
"region": "RI"
},
{
"region": "SC"
},
{
"region": "SD"
},
{
"region": "TN"
},
{
"region": "TX"
},
{
"region": "UT"
},
{
"region": "VT"
},
{
"region": "VI"
},
{
"region": "VA"
},
{
"region": "WA"
},
{
"region": "WV"
},
{
"region": "WI"
},
{
"region": "WY"
},
{
"region": "AA"
},
{
"region": "AE"
},
{
"region": "AP"
}
]
}
這裏是什麼樣子空:
{
"regions": [
{
"region": "empty"
}
]
}
我所要做的,就是當他們改變的值國家它發佈到我的json頁面,並回吐找到的區域,或離開區域字符串值爲空。
對我來說,訣竅是如果它返回一個區域列表,我需要將其構建到上述select -> option
部分。但是如果它返回空白,我需要一個input box here of type text
來代替select -> option
。
完成此操作的最佳方式/最佳實踐是什麼?當他們改變國家時,我可以處理JSON的發佈,我認爲我會遇到麻煩的部分是在區域爲空時切換輸入的選擇。
我想解析成一個jquery對象沒有太多的成功。
$('select[name=Country]').change(function() {
console.log(this.value);
$.getJSON('message_center_getRegions.asp', { country: this.value }, function (json) {
var options = '';
var obj = $.parseJSON(json);
console.log('count' + obj.regions.count);
console.log(json);
})
我console.log(json)
並且它顯示了一個有62個不同區域的對象。當我選擇一個在數據庫中沒有區域的國家時,它正確地顯示它是空的。我似乎無法得到obj不爲空console.log('count' + obj.regions.count);
說obj is null
。
理想情況下,如果沒有區域,則響應不應返回「區域」:[{「region」:「empty」}]'。它應該返回一個像這樣的空白列表:「'regions」:[]' – xbonez 2012-04-03 22:01:55
@xbonez謝謝,我可以改變它。我不確定如何檢查空的json。 – 2012-04-03 22:02:56
查看下面的答案 – xbonez 2012-04-03 22:04:17