根据GET的内容显示表单域

时间:2012-11-11 20:18:23

标签: javascript jquery

我有一个注册表单,其中有一个选择框,并且取决于用户选择的选项,某些字段可用。这与我从另一篇文章中得到的以下代码非常有用:

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

1 个答案:

答案 0 :(得分:2)

它与.change()有关,因为更改实际上并不是通过GET值发生的。您需要在页面加载时触发更改。假设您已经从GET中捕获并应用了该变量。

FIDDLE

像...这样的东西。

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

});