Fie*_*ood 5 html forms jquery dynamic
因为我花了几天时间才找到一个实现我想要的好方法,所以我想我会发布这个Q&A以节省其他宝贵的时间和不健康的挫折感:3.我尽可能地简化了代码(比如删除表单操作等).
基本上,我想做的是做到这一点:
<form>
<p>
<input type="button" value="Add phone number">
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
成为这个(通过点击按钮):
<form>
<div>
<p>
Phone number : <input type="text" name="phone_number1">
<input type="button" id="remove_phone_number1" value="Remove">
</p>
</div>
<p>
<input type="button" value="Add phone number">
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
而且,如果我再次点击,它将成为:
<form>
<div>
<p>
Phone number : <input type="text" name="phone_number1">
<input type="button" id="remove_phone_number1" value="Remove">
</p>
</div>
<div>
<p>
Phone number : <input type="text" name="phone_number2">
<input type="button" id="remove_phone_number2" value="Remove">
</p>
</div>
<p>
<input type="button" value="Add phone number">
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
(当然,只有工作的删除按钮)
我认为做这样的事情非常简单易行,但我很难找到解决方案.
Fie*_*ood 17
这就是我做的!= d
由于我有许多页面使用相同的动态添加表单字段,我希望能够在需要它的每个页面中包含(php)表单的不可见模型,并根据需要克隆它的(或许多)可见版本.我不打算用PHP包括你,因为它不是这篇文章的内容.请记住,这是重用我的代码的可能方式.我们潜入吧!
HTML
<div id="phone_number_form" class="hidden">
<p>
Phone number : <input type="text" name="phone_number">
<input type="button" id="remove_phone_number" value="Remove">
</p>
</div>
<form>
<p>
<input type="button" value="Add phone number" id="add_phone_number">
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
CSS
.hidden {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
<script>
$(document).ready(function(){
//We will be using an unique index number for each new instance of the cloned form
var phone_number_form_index=0;
//When the button is clicked (or Enter is pressed while it's selected)
$("#add_phone_number").click(function(){
//Increment the unique index cause we are creating a new instance of the form
phone_number_form_index++;
//Clone the form and place it just before the button's <p>. Also give its id a unique index
$(this).parent().before($("#phone_number_form").clone().attr("id","phone_number_form" + phone_number_form_index));
//Make the clone visible by changing CSS
$("#phone_number_form" + phone_number_form_index).css("display","inline");
//For each input fields contained in the cloned form...
$("#phone_number_form" + phone_number_form_index + " :input").each(function(){
//Modify the name attribute by adding the index number at the end of it
$(this).attr("name",$(this).attr("name") + phone_number_form_index);
//Modify the id attribute by adding the index number at the end of it
$(this).attr("id",$(this).attr("id") + phone_number_form_index);
});
//When the Remove button is clicked (or Enter is pressed while it's selected)
$("#remove_phone_number" + phone_number_form_index).click(function(){
//Remove the whole cloned div
$(this).closest("div").remove();
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是一个有效的例子:http://jsfiddle.net/wc28f/3/
我希望我的帖子会帮助你们中的一些人!^ _ ^
如果您发现任何错误或可能的优化,请发表评论,我会尽快解决
Fierceblood
| 归档时间: |
|
| 查看次数: |
16637 次 |
| 最近记录: |