我的代码如下:
function showHideOptions() {
$("#template1, #template2, #template3, #template4").css("display","none");
$(this).css("display","block");
}
我有四个选择下拉列表,在特定时间我想在模板选择器选项上只选择一个。
<select id="masterdropdown">
<option>T1</option>
<option>T2</option>
<option>T3</option>
<option>T4</option>
</select>
<select id="template1" onchange="return showHideOptions();">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template2" onchange="return showHideOptions();">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template3" onchange="return showHideOptions();">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template4" onchange="return showHideOptions();">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
CSS:
#template1, #template2, #template3, #template4{display:none;}
基本上我有一个顶部下拉列表(masterdropdown),它总是可见这也是一个模板选择器。在选择它的选项时,我想显示一个特定的模板drodown,它对应于masterdropdown中的选定选项。如何在jquery中实现这一点。 $(this)
在这种情况下不起作用,从函数调用。
答案 0 :(得分:1)
<script>
$(document).ready(function() {
$('#masterdropdown').showHideOptions().change();
});
$.fn.showHideOptions = function() {
this.change(function() {
$(".templateDropdowns").hide();
$('#' + $(this).val()).show();
});
return this;
};
</script>
<select id="masterdropdown">
<option value="template1">template1</option>
<option value="template2">template2</option>
<option value="template3">template3</option>
</select>
<select id="template1" class="templateDropdowns">
<option>ta</option>
<option>tat</option>
</select>
<select id="template2" class="templateDropdowns">
<option>ete</option>
<option>eTee</option>
</select>
<select id="template3" class="templateDropdowns">
<option>Te</option>
<option>Tet</option>
</select>
答案 1 :(得分:1)
查看有效的演示 http://jsfiddle.net/X5mWL/
JS
$(function(){
$("#masterdropdown").change(function() {
$("#template1, #template2, #template3, #template4").hide();
$($("#masterdropdown").val()).show();
});
});
HTML
<select id="masterdropdown">
<option value="#template1">T1</option>
<option value="#template2">T2</option>
<option value="#template3">T3</option>
<option value="#template4">T4</option>
</select>
<select id="template1">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template2">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template3">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
<select id="template4">
<option>Template1</option>
<option>Template2</option>
<option>Template3</option>
<option>Template4</option>
</select>
答案 2 :(得分:0)
将更改事件处理程序附加到主下拉列表。
在其中,只需检查选择值,然后显示/隐藏相应的下拉菜单。
像这样的东西(在javascript上有点生疏)
$(“masterdropdown”)。change(function(){
$("#template1, #template2, #template3, #template4").hide(); var selText = $(this).search("option:selected").text(); if(selText == 'T1') $("#template1").show(); if(selText == 'T2') $("#template2").show(); if(selText == 'T3') $("#template3").show(); if(selText == 'T4') $("#template4").show();
});