我真的需要帮助。我是jQuery
的新用户,我正在尝试刷新dropdown list
或在选择列表中的选项时更改其值。
HTML
<select name="State_locate" class="State">
<option value=" " selected="selected">Select a state</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
</select>
<div id="City_1" class="Alabama">
<select name="City_location[]" class="CityExt">
<option value="Null" selected="selected">Select a city</option>
<option value="Avondale">Avondale</option>
<option value="Buckeye">Buckeye</option>
<option value="Catalina">Catalina</option>
</select>
</div>
<div id="City_1" class="Alaska">
<select name="City_location[]" class="CityExt">
<option value="Null" selected="selected">Select a city</option>
<option value="Lancaster">Lancaster</option>
<option value="Soth">Soth</option>
<option value="Foothills">Foothills</option>
</select>
</div>
JS
// JavaScript Document
$("select").bind("change", function () {
if ($(this).val() == "AL") {
$(".Alabama").slideDown();
$(".Alaska").slideUp(function () {
if ($('.Alabama').is(':visible')) {
$(".Alaska option[value='Lancaster']").attr('selected', 'selected')
}
});
} else if ($(this).val() == "AK") {
$(".Alaska").slideDown();
$(".Alabama").slideUp();
}
})
我想要做的是当一个州被选中时,一个城市就会下降。这非常有效。但是一旦提交,城市的值就会存储在数组City_location[]
中。
我遇到的问题是,如果用户选择阿拉斯加的城市,然后在提交表格之前选择阿拉巴马州的另一个城市,那么你最终会在阵列中的阿拉巴马州和阿拉斯加州的两个城市。
我正在寻找一种方法来选择阿拉斯加州的“Null”值,如果选择了Alabama。但我的代码不起作用。它仅在值为“Null”时才起作用。例如,如果我在jQuery
代码
$(".Alaska option[value='Lancaster']").attr('selected', 'selected')
它只能工作一次。如果我这样做两次,它不会更新。我该如何解决这个问题。
很抱歉长代码。谢谢你的帮助。
答案 0 :(得分:0)
你可以这样做:
$('.state').on('change',function() {
$('.CityExt').val('');
}
然后,只要状态选择被更改,它就会将两个城市选择的值设置为空。
答案 1 :(得分:0)
请改为尝试:
$(".Alaska option:eq(0)").attr('selected', 'selected')
由于null元素是第一个,这将解决您的问题。
答案 2 :(得分:0)
我发现了我的问题。而不是使用“道具”我使用“attr”
$(".Alaska option[value='Lancaster']").prop('selected', 'selected');
现在,每次在提交两次以上之前选择另一个城市时,代码不仅会工作一次。
我查了解其中的含义,但仍然不太清楚,为什么在jquery中使用“prop”代替“attr”。我会一直在搜索。我感谢所有回复我的人提供的帮助。