5

我目前正在处理 2 个棘手的 UX JQuery 问题。我正在使用 JQuery 克隆 2 个表单变量。我如何索引,标识它们,以便我可以用这个 id 标记它们。例如,如果我从选择框中选择 3,我应该得到 3 行表格,并且在每行的左侧应该以一个数字开头,从 1.form、2.form、3 form 开始。

我遇到的第二个问题是我想针对confirmattendant[] 验证attendant[]。我将如何在克隆的 HTML 代码中执行此操作。

这是我的 JSFiddle http://jsfiddle.net/tGprH/5/

这是我的 HTML 代码:

<select name="select" id="select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
<br/>
<p>Email address, Confirm Email Address</p>
#1 <input type="text" name="attendant[]"/>
<input type="text" name="confirmattendant[]"/>
<br/>

<div id="container">

</div>

这是我的 jQuery

$("select").change(function() {

    var select = parseInt($('#select').val() , 10);
    var $clone = '<input type="text" name="attendant[]" /><input type="text" name="confirmattendant[]" /><br/>';
    console.log($clone);
    var html = '';
    for(var i = 1;i< select ; i++){
        html += $clone;
    }
    $('#container').empty().html(html);
 }).change();
4

2 回答 2

0

您可以在 for 循环中打印所需的内容,例如..

html += '#'+(i + 1)+ ' '+$clone;

尝试这个

$("select").change(function() {

   var select = parseInt($('#select').val() , 10);
   var $clone = '<input type="text" name="attendant[]" /><input type="text" name="confirmattendant[]" /><br/>';
   console.log($clone);
   var html = '';
   for(var i = 1;i< select ; i++){
      html += '#'+(i + 1)+ ' '+$clone;
   }
   $('#container').empty().html(html);
})

在这里摆弄

于 2013-02-04T07:00:45.523 回答
0

关于第一个问题:http: //jsfiddle.net/tGprH/7/

$("select").change(function() {

    var select = parseInt($('#select').val() , 10);
    var $clone = '<input type="text" name="attendant[]" /><input type="text" name="confirmattendant[]" /><br/>';
    console.log($clone);
    var html = '';
    for(var i = 1;i< select ; i++){
        if(i >= 1)
            html +=  '#' + (i+1) + ' ' + $clone;
        else
            html += $clone;
    }
    $('#container').empty().html(html);
 }).change();

关于比较:http: //jsfiddle.net/tGprH/8/

<button id="compare">compare</button>

$('#compare').click(function(){
   var $attendantArray =  $('input[name="attendant[]"]');
   var $confirmattendantArray =  $('input[name="confirmattendant[]"]');
   for(var i = 0;i< $attendantArray.length ; i++)
   {
       alert((i+1) + ' attendant [' + $($attendantArray[i]).val() + ' / ' + $($confirmattendantArray[i]).val() + ']')
   }
});
于 2013-02-04T07:05:05.233 回答