我正忙着一个表单,需要选择复制某些字段的次数与用户点击一样多,然后它也需要被E-Mailed关闭,因此我目前在护照字段上。
唯一的问题是,我设置它的方式是,对于每个div元素,类关闭“passport”,它会创建一个输入字段。所以现在字段ID是:
1 2 3 4 5 6 7 8 9 10 11 12 13
当我使用jQuery clone时:
1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13
以及我需要它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
但是我如何只分配与该输入相关联的第一组id,因为它会评估字段的值。
无论如何,任何帮助/建议都非常赞赏。
继承人jsfiddle:http://jsfiddle.net/dawidvdh/A5naZ/
下面是代码:
jQuery的:
$(document).ready(function() {
var pass = 1;
val = 0;
jQuery('div.passport').each(function() {
var index = "pass"+pass++;
var passer = "<input class='pass' id="+'"'+index+'"'+" "+" maxlength='1' />";
var passvalue = $(this).attr('value');
jQuery(passer).appendTo('#pass');
});
$("#clone").click(function () {
$('#pass').clone().insertAfter("#pass");
});
function Validatepass() {
var passValue = '';
$('.pass').each(function(){ passValue+=($(this).val());});
jQuery('#error p').remove();
var error = jQuery('#error');
var passNumber = passValue;
var correct = true;
if (passNumber.length != 13) {
correct = false;
}
// if no error found, hide the error message
if (correct) {
jQuery('.pass').css("border","1px solid #9A8B7D");
}
// otherwise, show the error
else {
jQuery('.pass').css("border","1px solid #FF0000");
}
return false;
}
$('input.pass').keydown(function(e){
if(e.keyCode == 8){
$(this).val('');
$(this).prev().val('');
$(this).prev().focus();
Validatepass();
}
});
$('input.pass').on('keyup', function(){
if (this.value.match(/\d+/)) {
var $this = $(this);
if ($this.next('input').length) {
$this.next().focus();
} else {
Validatepass();
}
}
});
});
和HTML:
<div id="pass"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<button id="clone">duplicate</button>
答案 0 :(得分:0)
将点击功能更改为此
$("#clone").click(function () {
var clonedObj=$('#pass').clone().insertAfter("#pass");
clonedObj.find('.pass').each(function(){
this.id='pass' + pass++;
});
clonedObj[0].id="WatEverUWant";
});
编辑:检查此jsfiddle
编辑2:根据您的第二条评论,如果您的意思是更改克隆id
的{{1}},请在代码中添加。