隐藏在更改下拉菜单上
Hide on change dropdown menus
我正在尝试让一个网站来处理电话号码,并确保它们通过国家/地区代码和区号进行验证(通过根据先前决定更改的下拉菜单进行选择(。到目前为止,我所拥有的是:
<script type="text/javascript">
$("#countryBox").change(function(){
var selectedVal = $(this).val();
if(selectedVal == "Canada")
{
$("#regionBox.usa,#regionBox.uk,#regionBox.au").hide();
$("#regionBox.can").show();
}
else if(selectedVal == "United States")
{
$("#regionBox.can,#regionBox.uk,#regionBox.au").hide();
$("#regionBox.usa").show();
}
else if(selectedVal == "United Kingdom")
{
$("#regionBox.usa,#regionBox.au,#regionBox.can").hide();
$("#regionBox.uk").show();
} else {
$("#regionBox.usa,#regionBox.uk,#regionBox.can").hide();
$("#regionBox.au").show();
}
});
</script>
和
<form id="registration" action="post">
<label for="username">Username: <input type="textbox" id="username"/></label>
<br />
<label for="password">Password: <input type="textbox" id="password"/></label>
<br />
<label>Country: </label>
<select id="countryBox">
<option selected="selected" value="">Select Country</option>
<option value="Canada">Canada</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Australia">Australia</option>
</select>
<br />
<label>Region: </label>
<select id="regionBox">
<option selected="selected" value="">Select Region</option>
<!-- canadian -->
<option class="can" value="BC">British Columbia</option>
<option class="can" value="AB">Alberta</option>
<option class="can" value="SK">Saskatchewan</option>
<option class="can" value="MB">Manitoba</option>
<option class="can" value="QC">Quebec</option>
<option class="can" value="ON">Ontario</option>
<option class="can" value="NF">Newfoundland</option>
<option class="can" value="NB">New Brunswick</option>
<option class="can" value="NS">Nova Scotia</option>
<option class="can" value="PEI">Prince Edward Island</option>
<option class="can" value="YK">Yukon Territory</option>
<option class="can" value="NW">Northwest Territory</option>
<option class="can" value="NU">Nunavut</option>
<!-- american -->
<option class="usa" value="WA">Washington</option>
<!-- british -->
<option class="uk" value="LND">London</option>
<!-- aussie -->
<option class="au" value="SYD">Sydney</option>
</select>
<br />
<br />
<label for="phone">Phone Number: <input type="textbox" id="phone"/></label>
<br />
<label for="address">Address: <input type="textbox" id="address"/></label>
<br /><br />
<button form="registration" type="submit" formmethod="post" formaction="SERVER URL HERE" d="submit">Submit</button>
<button form="registration" type="reset" id="cancel">Cancel</button>
我所做的其他jquery尝试不会改变下拉列表。这个现在有下拉菜单(无论如何,第一步,三步(,但脚本似乎没有运行/工作......
关于如何使下拉列表工作的建议?
请注意,我需要扩展其他国家/地区的区域,然后也添加区号选择...但是为了走得那么远,我需要第一点工作......
此外,更改事件未绑定到元素。 您需要添加 $( function() {
到您的代码。 你添加的javascript/jQuery可能不会触发,除非它们在DOM就绪函数中(对于jQuery绑定元素(。
您可以使用以下代码:
$("#countryBox"(.change(function(({ var selectedVal = $(this(.val((; $("#regionBox option"(.hide((; if(selectedVal == "Canada"( { $("#regionBox option.can"(.show((; } else if(selectedVal == "United States"( { $("#regionBox option.usa"(.show((; } else if(selectedVal == "United Kingdom"( { $("#regionBox option.uk"(.show((; } else { $("#regionBox option.au"(.show((; } });
问题是 jQuery 选择器将查找任何 id regionBox 和 className 设置为 can、usa、uk 或 au 的元素。您需要将其更改为加拿大的$('#regionBox option.can');
,所有其他版本也是如此。你可以这样做:
$("#countryBox").change(function(){
var selectedVal = $(this).val();
$("#regionBox option").hide();
switch(selectedVal) {
case "Canada":
$("#regionBox option.can").show();
break;
case "United States":
$("#regionBox option.usa").show();
break;
case "United Kingdom":
$("#regionBox option.uk").show();
break;
default:
$("#regionBox option.au").show();
}
});
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 一系列下拉菜单,由jQuery提供支持,隐藏和显示,但不在Chrome中
- 单击下拉菜单隐藏其他下拉菜单
- 如何隐藏当前选定的选项,使其在打开下拉菜单时不显示
- 根据两个下拉菜单的选择设置隐藏值
- 隐藏在导航栏中的下拉菜单
- UIkit下拉菜单隐藏,如果使用javascript隐藏,则会再次显示
- 下拉菜单隐藏在javascript滑块后面
- 下拉菜单隐藏在图像后面
- 下拉菜单隐藏在JS幻灯片后面
- 引导下拉菜单隐藏在其他元素后面
- 通过下拉菜单隐藏表行
- 我怎么能防止下拉菜单隐藏时,点击弹出触发从下拉菜单
- 下拉菜单隐藏菜单
- 引导下拉菜单隐藏在第二个面板体
- 当使用js路由器时,点击下拉菜单隐藏
- Javascript Jquery下拉菜单隐藏在空白,但是它打破下拉菜单,直到刷新
- Drupal Nice菜单下拉菜单隐藏在下面的内容
- 使用下拉菜单隐藏和显示元素
- 引导下拉菜单隐藏在使用iframe嵌入的Silverlight应用程序后面