想要在HTML中动态添加隐藏的输入字段

时间:2016-12-01 10:28:59

标签: javascript jquery html jquery-ui

我有2个按钮,根据单击哪个按钮,我想将该数据传递到同一页面上的表单 所以我试图添加一个带有该值的隐藏输入字段,但它似乎无法正常工作

我想用它在PHP中发布一个表单,所以也欢迎任何替代解决方案。

我试过这段代码,但没有去

(function () {

    $(".downloadBrochure").click(function () {
        if (this.id == "basicBrochure") {
            $("<input type='text' class='hidden' name='package' id='packagetype' value='Basic'>").appendTo("#brochure");
            // $('#packagetype').html("Basic");
        }
        else {

            // $('#packagetype').html("Plus");
        }
        $(".modal-content").show();
    });

})();

我的HTML表单是

<div class="modal-content">
            <div class="modal-body">
                {!! Form::open(array('url' => '/saveRequestInfo', 'method' => 'POST', 'class' => 'form-horizontal', 'id' => 'brochure')) !!}
                {{ csrf_field() }}
                <div class="form-group">
                    <div class="col-xs-8 col-xs-offset-2">
                        <input type="text" placeholder="Name" name="txt_name" id="txt_name" class="form-control"
                               required>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-xs-8 col-xs-offset-2">
                        <input type="text" placeholder="Phone" name="txt_phone" id="txt_phone" class="form-control"
                               required>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-xs-8 col-xs-offset-2">
                        <input type="text" placeholder="Email" name="txt_email" id="txt_email" class="form-control"
                               required>
                    </div>
                </div>

                <input type="text" class="hidden" name="url" id="url"
                       value="<?= $_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'] : ""; ?>">

                <div class="form-group">
                    <div class="col-xs-8 col-xs-offset-2 text-center">
                        <button class="btn btn-primary callback" name="btn_call">
                            Download Brochure
                        </button>
                    </div>
                </div>
                {!! Form::close() !!}
            </div>
        </div>

请协助

1 个答案:

答案 0 :(得分:1)

您不应该使用 IIFE(立即调用函数表达式),因为它在DOM准备好之前运行它,而是将其更改为rm -rf ~/Library/Developer/Xcode/DerivedData 块:

document.ready

正如在评论中建议的那样,如果你需要一个隐藏的输入元素,那么你应该使用jQuery(function ($) { // <-----use the doc ready block this way $(".downloadBrochure").click(function () { if (this.id == "basicBrochure") { $("<input type='hidden' name='package' id='packagetype' value='Basic'>").appendTo("#brochure"); // $('#packagetype').html("Basic"); } else { // $('#packagetype').html("Plus"); } $(".modal-content").show(); }); }); // <-------remove it here ,它可以为你提供输入元素,而且用户看不到它。