У меня есть код, который я пытаюсь изменить, чтобы получить номер в поле имени.
Цель состоит в том, что через несколько кликов код становится таким же
<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();
});
});
Это решение странно, но работало для меня всегда.
$(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();
});
});
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();
});