我有以下 JS 用于生成省/州的下拉串列:
var populateList = function (list, element) {
element.append("<option val=''>Select...</option>")
list.forEach(function (val) {
element.append("<option val=" val[0] ">" val[1] "</option>");
})
}
var canProvinces = [
['ON', 'Ontario'],
['QC', 'Quebec'],
['NS', 'Nova Scotia'],
['NB', 'New Brunswick'],
['MB', 'Manitoba'],
['BC', 'British Columbia'],
['PE', 'Prince Edward Island'],
['SK', 'Saskatchewan'],
['AB', 'Alberta'],
['NL', 'Newfoundland and Labrador'],
['NT', 'Northwest Territories'],
['YT', 'Yukon'],
['NU', 'Nunavut']];
我正在努力的想法是,當用戶在表單中切換國家/地區時,系統可以populateList()在用戶切換國家/地區時切換到新串列。然后我使用 jQuery 將省縮寫放在一個隱藏的輸入欄位中。這是表單中的代碼:
<script src="list-of-provices/states-from-above.js"></script>
<input id="UserCountry" value="CA" type="text" /> <!-- to be converted to dropdown when issue resolves -->
<select id="province-select" name="province-select"></select>
<input id="Province" type="hidden"/>
<script>
$(document).ready(function () {
if ($('#UserCountry').val() == 'CA') {
populateList(canProvinces, $("#province-select"));
} else if ($('#UserCountry').val() == 'US') {
populateList(usaStates, $("#province-select"));
}
$('#province-select').bind('input propertychange', function () {
//something wrong here? Returns full name, not 2 letter abbreviation.
console.log($("#province-select").val())
$('#Province').val($("#province-select").val())
})
});
</script>
我還沒有進入 Country 切換部分,因為盡管我嘗試了所有方法,但還是$("#province-select").val()從下拉串列中回傳 Text,而不是值。我一直找不到原因。下面是代碼生成的 HTML:
<select id="province-select" name="province-select">
<option val="">Select...</option>
<option val="ON">Ontario</option>
<option val="QC">Quebec</option>
<option val="NS">Nova Scotia</option>
<option val="NB">New Brunswick</option>
<option val="MB">Manitoba</option>
<option val="BC">British Columbia</option>
<option val="PE">Prince Edward Island</option>
<option val="SK">Saskatchewan</option>
<option val="AB">Alberta</option>
<option val="NL">Newfoundland and Labrador</option>
<option val="NT">Northwest Territories</option>
<option val="YT">Yukon</option>
<option val="NU">Nunavut</option>
</select>
有什么我想念的嗎?$("#province-select").val()應該從下拉串列中回傳 val="",但對我來說它回傳文本。
有什么想法嗎?
uj5u.com熱心網友回復:
您的代碼中有一個小錯誤。用于設定 option 值的屬性是value和 not val。更換你的
element.append("<option val=" val[0] ">" val[1] "</option>");
和
element.append("<option value='" val[0] "'>" val[1] "</option>");
你很好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/399006.html
標籤:javascript 查询
下一篇:Iformfile非法呼叫和空值
