我正忙于一个表单,它需要有一个选项来复制某些字段,就像用户点击一样多次,然后它也需要通过电子邮件发送出去,因此我目前在护照字段上。
唯一的问题是,我设置它的方式是,对于每个“护照”类关闭的 div 元素,它都会创建一个输入字段。所以现在字段ID在哪里:
1 2 3 4 5 6 7 8 9 10 11 12 13
当我使用 jQuery 克隆时:
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>