繁体   English   中英

动态将字段添加到laravel表单

[英]Add fields to laravel form dynamically

我有一个Laravel表单,可以从用户那里收集信息。 我要在表单的一部分上添加一个按钮,该按钮将添加一行包含4个文本框的行(每个文本框的名称不同),用户可以填写。每次用户单击该按钮时,应添加另一行的4个文本框。

在理想的情况下,代码将是通过单击按钮调用的javascript函数(以便以后再使用)。 我似乎看不到如何在laravel表单上的按钮单击上添加事件处理程序。

这适用于HTML

<div class="input_fields_wrap">
    <button class="add_field_button">Add More Fields</button>
    <div><input type="text" name="mytext[]"></div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>

JS

        $(document).ready(function() {
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment
            $("#rm").remove(); 

            $(wrapper).append('<div id="divs"><input type="text" name="mytext[]"/>'); //add input box
             $(wrapper).append('<div id="divs"><input type="text" name="mytext[]"/>'); //add input box
              $(wrapper).append('<div id="divs"><input type="text" name="mytext[]"/></div>'); //add input box
               $(wrapper).append('<div id="divs"><input type="text" name="mytext[]"/><a href="#" id="rm" class="remove_field">Remove</a></div>'); //add input box
                $(wrapper).append('<br>')
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); $("#divs").remove(); x--;
        $("#divs").remove(); x--;
        $("#divs").remove(); x--;
        $("#divs").remove(); x--;

    })
});

名称将是mytext(第一个输入名称= mytest[1]第二个mytest[2] ...等),您可以将X变量添加到表单中,以便您知道控制器中有多少输入

在html中,您可以将类型更改为hidden,以便在用户单击之前具有任何输入字段

JSFiddle中 检查结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM