我有一个Laravel表单,用于收集用户的信息。在表单的一部分,我想添加一个按钮,它将添加一行包含4个文本框(每个文本框的名称不同),用户可以填写。每次用户单击该按钮时,应添加另一行4个文本框
在理想的世界中,代码将是一个javascript函数(因此我可以在以后重复使用),通过按钮单击调用。我似乎无法看到如何向laravel表单上的按钮添加事件处理程序。
答案 0 :(得分:3)
这很有效 的 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中,您可以将类型更改为隐藏,这样您就可以拥有任何输入字段,直到用户点击
检查结果我 n JSFiddle