0

我有一个带有选择框的注册表单,并且根据用户选择的选项,某些字段可用。这适用于我从另一篇文章中获得的以下代码:

<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 的值?

4

1 回答 1

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();

});
于 2012-11-11T20:39:48.683 回答