Javascript 基于GET的内容显示表单字段

Javascript 基于GET的内容显示表单字段,javascript,jquery,Javascript,Jquery,我有一个注册表单,它有一个选择框,根据用户选择的选项,某些字段可用。这与我从另一篇文章中获得的以下代码非常配合: <div id="option1" class="plan_options" style="display:none">display something</div> $(function() { $('#plan').change(function(){ $('.plan_options').hide(); $('#' +

我有一个注册表单,它有一个选择框,根据用户选择的选项,某些字段可用。这与我从另一篇文章中获得的以下代码非常配合:

<div id="option1" class="plan_options" style="display:none">display something</div>


$(function() {
    $('#plan').change(function(){
    $('.plan_options').hide();
        $('#' + $(this).val()).show();
    });
});

我唯一的问题是,当有人从产品页面进入注册表单时,我通过GET传递一个变量,GET是上面代码适用的计划选项之一。select正确填充了正确的值,但上面的代码不起作用,并且不显示div。如果我手动更改为一个适当的选项,包括通过GET传递的选项,那么效果很好-是否仍然需要获取上述代码以使用GET的值?

它与.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();

});

您如何/从产品页面传递到此页面?例如,我在url-signup.php?plan=option1中传递一个值,在计划选择中有一个名为option1Ah的条目,我明白了。jQuery核心没有任何适当的函数来处理这个问题。有插件,或者你可以使用普通的Javascript。@我想这不是真的,你只需在加载时输入更改即可。检查下面我的答案。您可以触发任何事件,如“单击”、“鼠标悬停”、“聚焦”或任何其他事件。@VIDesignz可能我误解了他的问题。我以为他想用jQuery捕获url的GET参数。