在克隆复选框字段后,使用jQuery获取(并更改)该字段的名称
Using jQuery to obtain (and change) the name of a checkbox field after it has been cloned?
我有一些代码正在尝试修改,以便获得复选框名称中的数字。
目标是点击几次后,代码就会变成这样的
<input type="checkbox" name="UPDATE_METHOD[0][]" value="Email" checked="">Email
<input type="checkbox" name="UPDATE_METHOD[0][]" value="SMS" checked="">SMS
<input type="checkbox" name="UPDATE_METHOD[1][]" value="Email" checked="">Email
<input type="checkbox" name="UPDATE_METHOD[1][]" value="SMS" checked="">SMS
<input type="checkbox" name="UPDATE_METHOD[2][]" value="Email" checked="">Email
<input type="checkbox" name="UPDATE_METHOD[2][]" value="SMS" checked="">SMS
当前代码是…
HTML:
<div class="clone_replicate_this_div_1">
<input type="checkbox" name="UPDATE_METHOD[0][]" value="Email" checked="">Email
<input type="checkbox" name="UPDATE_METHOD[0][]" value="SMS" checked="">SMS
</div>
<div class="placer_1"></div>
<a href="#" class="clone_trigger_button_1">Clone row 1</a>
jQuery:
$(document).ready(function(){
$(".clone_trigger_button_1").click(function () {
// Group boxes in groups of 2
var j = 0;
$('[name="UPDATE_METHOD[0][]"]').prop('name', function(i, name) {
if (i%2==0) j++;
return name.split('[').shift() + '['+j+'][]';
});
$('.clone_replicate_this_div_1').last().clone().insertBefore(".placer_1");
$('input.cl:last').val('');
event.preventDefault();
});
});
我试图获得最后一个UPDATE_METHOD[0][]的编号,将其指定为变量,然后加1。
jsFiddle在这里:http://jsfiddle.net/LCUTk/2/
谢谢你能提供的任何帮助。。。
试试这个
$(document).ready(function(){
$(".clone_trigger_button_1").click(function () {
var total = $('[name^="UPDATE_METHOD"]').length;
var index = Math.round(total / 2);
$('.clone_replicate_this_div_1').last().clone().insertBefore(".placer_1");
$('input.cl:last').val('');
$('.clone_replicate_this_div_1').last().find("input[type='checkbox']").prop("name","UPDATE_METHOD["+index+"][]");
event.preventDefault();
});
});
实时演示
JSFIDDLE
HTML:
<div class="placer_1"></div>
<a href="#" class="clone_trigger_button_1">Clone row 1</a>
<script type="text/template" id="template">
<div class="clone_replicate_this_div_1">
<input class="email" type="checkbox" checked="checked" />
<label class="email_label">Email</label>
<input class="sms" type="checkbox" checked="checked" />
<label class="sms_label">SMS</label>
</div>
</script>
JavaScript:
$(document).ready(function(){
var html = $('#template').html(),
placer = $( '.placer_1' ),
index = 0,
createInputs = function(){
var div = $( html ),
name = 'UPDATE_METHOD[' + index + '][]';
$( '.email', div ).attr( 'name', name )
.attr( 'id', 'update_method_email_' + index );
$( '.sms', div ).attr( 'name', name )
.attr( 'id', 'update_method_sms_' + index );
$( '.email_label', div )
.attr( 'for', 'update_method_email_' + index );
$( '.sms_label', div )
.attr( 'id', 'update_method_sms_' + index );
placer.before( div );
++index;
console.log( index );
};
$(".clone_trigger_button_1").click(function ( evt ) {
createInputs();
evt.preventDefault();
});
createInputs();
});
这个解决方案很奇怪,但一直对我有效。
$(document).ready(function(){
var counter = 1 ;
$(".clone_trigger_button_1").click(function () {
var newObject = '<div class="clone_replicate_this_div_1"><input type="checkbox" name="UPDATE_METHOD[' + counter + '][]" value="Email" checked="">Email<input type="checkbox" name="UPDATE_METHOD[' + counter + '][]" value="SMS" checked="">SMS</div>' ;
$(newObject).insertBefore(".placer_1");
counter++ ;
event.preventDefault();
});
});
相关文章:
- 从 jquery 动态输入字段获取值
- 角度形式 - 从包装器中的字段获取模型
- 使用Javascript从html字段获取年龄
- 通过ACF从WordPress中的重复字段获取Brightcove视频
- 按标签时间字段获取字段值,如下所示
- 如何在不提交表单的情况下从输入字段获取文件路径
- 使用jQuery从隐藏输入字段获取值的问题
- 如何从输入字段获取多个值并添加到文本区域
- 通过数组中的一个字段获取对象
- PHP和如何在点击连接到每个输入字段的按钮后从多个输入字段获取值
- 从输入字段获取图像信息
- 从隐藏字段获取值- JavaScript
- 通过php从innerhtml字段获取值
- 从多个文件上传字段获取文件名
- 在MVC中通过Jquery从隐藏字段获取多个值
- 从输入字段获取变量值,并在SELECT-WHERE语句中使用它
- Javascript:按特定字段获取所有对象
- 是否可以使用javascript从文件字段获取$_FILES["inputID"]["tm
- 动态 crm - 使用 JavaScript 从 CRM 中的日期和时间字段获取日期字符串值
- 如何使用angular.copy从一个输入字段获取值到另一个输入字段?