我有一个注册表单,其中有一个选择框,并且取决于用户选择的选项,某些字段可用。这与我从另一篇文章中得到的以下代码非常有用:
<div id="option1" class="plan_options" style="display:none">display something</div>
$(function() {
$('#plan').change(function(){
$('.plan_options').hide();
$('#' + $(this).val()).show();
});
});
我唯一的问题是,当有人从产品页面进入注册表单时,我通过GET传递变量,这是上述代码适用的计划选项之一。使用正确的值正确填充选择,但上面的代码不起作用,并且不显示div。如果我手动更改为其中一个适当的选择(包括通过GET的那个选项,它可以正常工作 - 无论如何都要使上面的代码使用GET的值?
答案 0 :(得分:2)
它与.change()有关,因为更改实际上并不是通过GET值发生的。您需要在页面加载时触发更改。假设您已经从GET中捕获并应用了该变量。
像...这样的东西。
$('document').load(function(){
$('#plan').change();
});
此外,您应该使用on()处理程序设置您的函数,如此
$(function() {
$('body').on('change', '#plan', function(){
$('.plan_options').hide();
$('#' + $(this).val()).show();
});
});
最终这将是你的最终代码...... :)
$(function() {
$('body').on('change', '#plan', function(){
$('.plan_options').hide();
$('#' + $(this).val()).show();
});
$('#plan').change();
});