我有一个表单,当有人从下拉列表中选择一个选项时,我希望显示不同的字段。由于某些原因,我的代码无效,它隐藏了可选的div,但是在我做出选择时它并没有显示它们。
这是我正在使用的jQuery(因为我们正在运行另一个在Magento中冲突的脚本,我已经为jQuery减去了$):
jQuery(document).ready(function(){
jQuery("#ltd").change(function(){
if (jQuery(this).val() == "1" ) {
jQuery("#ltd").slideDown("fast"); //Slide Down Effect
} else {
jQuery("#ltd").slideUp("fast"); //Slide Up Effect
}
});
jQuery("#partnership").change(function(){
if (jQuery(this).val() == "1" ) {
jQuery("#partnership").slideDown("fast"); //Slide Down Effect
} else {
jQuery("#partnership").slideUp("fast"); //Slide Up Effect
}
});
jQuery("#sole").change(function(){
if (jQuery(this).val() == "1" ) {
jQuery("#sole").slideDown("fast"); //Slide Down Effect
} else {
jQuery("#sole").slideUp("fast"); //Slide Up Effect
}
});
});
我的CSS是:
.formhide { display:none; }
.clear-block { clear:both; }
这是表格中的代码:
<div class="form-left-even"><span class="green">Company Type</span></div>
<div class="form-right-even"> <select>
<option value="">Please choose</option>
<option value="ltd">Limited Company</option>
<option value="partnership">Partnership</option>
<option value="sole">Sole Trader</option></select>
</div>
<div class="clear-block"></div>
<div class="formhide" id="ltd">
<!-- Limited Company -->
<div class="form-left-even">Reg Comp Name:</div>
<div class="form-right-even">
<input type="text" name="regcompname" size="37" maxlength="100" />
</div>
<div class="clear-block"></div>
<div class="form-left-even">Reg Number:</div>
<div class="form-right-even">
<input type="text" name="regnumber" size="37" maxlength="100" />
</div>
<div class="clear-block"></div>
</div>
<div class="formhide" id="partnership">
<!-- Partnership -->
<div class="form-left-even">Partner 1 Name:</div>
<div class="form-right-even">
<input type="text" name="partner1" size="37" maxlength="100" />
</div>
<div class="clear-block"></div>
<div class="form-left-even">Partner 2 Name:</div>
<div class="form-right-even">
<input type="text" name="partner2" size="37" maxlength="100" />
</div>
<div class="clear-block"></div>
<div class="form-left-even">Partner 3 Name:</div>
<div class="form-right-even">
<input type="text" name="partner3" size="37" maxlength="100" />
</div>
<div class="clear-block"></div></div>
<div class="formhide" id="sole">
<!-- Sole Trader -->
<div class="form-left-even">Full Name:</div>
<div class="form-right-even">
<input type="text" name="soletradername" size="37" maxlength="100" />
</div>
<div class="clear-block"></div></div>
答案 0 :(得分:2)
您不是在观看选择更改 - 您正在观看目标元素。
你想要这样的东西:
HTML
<select id='pagePartSelector'>
<option value="part1">part1</option>
<option value="part2">part2</option>
</select>
<div id="part1" class="pagePart">...</div>
<div id="part2" class="pagePart">...</div>
脚本:
$('#pagePartSelector').change(
function() {
$(".pagePart:visible").slideUp(); //slide up visible pageparts
$("#"+$(this).val()).slideDown(); //slide down the selected page part by id
});
答案 1 :(得分:0)
如果我正确理解了代码,看起来你正在将.change()附加到'#ltd'等。你需要将.change()事件连接到下拉列表。
答案 2 :(得分:0)
正如David Kep所说,
jQuery("#ltd")
您需要在下拉列表中提供“Id”或“class”,然后注意更改。