Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在标签中生成jQuery表单字段和sno_Javascript_Jquery_Jqueryform - Fatal编程技术网

Javascript 在标签中生成jQuery表单字段和sno

Javascript 在标签中生成jQuery表单字段和sno,javascript,jquery,jqueryform,Javascript,Jquery,Jqueryform,我需要一个表单来动态生成表单元素。到目前为止,我已经修改了一个脚本来添加另一个字段txtEmail1,它工作正常,一旦用户点击add按钮就会生成字段 现在我需要在标签“全名”前面加上序号1、2、3、4等等。我试过了,但我没能把它弄对。我需要专家的帮助 <script type="text/javascript"> $(document).ready(function() { $('#btnAdd').click(function() {

我需要一个表单来动态生成表单元素。到目前为止,我已经修改了一个脚本来添加另一个字段
txtEmail1
,它工作正常,一旦用户点击add按钮就会生成字段

现在我需要在标签“全名”前面加上序号1、2、3、4等等。我试过了,但我没能把它弄对。我需要专家的帮助

<script type="text/javascript">
        $(document).ready(function() {
            $('#btnAdd').click(function() {
                var num     = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
                var newNum  = new Number(num + 1);      // the numeric ID of the new input field being added

                // create the new element via clone(), and manipulate it's ID using newNum value
                var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);

                // manipulate the name/id values of the input inside the new element
                newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum);

                newElem.children(':first').attr('id', 'txtEmail' + newNum).attr('txtEmail', 'txtEmail' + newNum);

                // insert the new element after the last "duplicatable" input field
                $('#input' + num).after(newElem);

                // enable the "remove" button
                $('#btnDel').attr('disabled','');

                // business rule: you can only add 5 names
                if (newNum == 5)
                    $('#btnAdd').attr('disabled','disabled');
            });

            $('#btnDel').click(function() {
                var num = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
                $('#input' + num).remove();     // remove the last element

                // enable the "add" button
                $('#btnAdd').attr('disabled','');

                // if only one element remains, disable the "remove" button
                if (num-1 == 1)
                    $('#btnDel').attr('disabled','disabled');
            });

            $('#btnDel').attr('disabled','disabled');
        });
    </script>
</head>
 <body>
    <div>
        <input type="button" id="btnAdd" value="add another name" />
        <input type="button" id="btnDel" value="remove name" />
    </div>
    <div id="input1" style="margin-bottom:4px;" class="clonedInput">
                  <label id="lblSno1"></label>  Full Name
                    <input name="name1" type="text" class="TextBoxNext" id="name1" /></td>
                    <input name="txtEmail1" type="text" class="TextBoxNext" id="txtEmail1" /></td>
   </div>
</form>
</body>

$(文档).ready(函数(){
$('#btnAdd')。单击(函数(){
var num=$('.clonedInput').length;//当前有多少个“可复制”输入字段
var newNum=newnumber(num+1);//正在添加的新输入字段的数字ID
//通过clone()创建新元素,并使用newNum值操纵其ID
var newElem=$('#input'+num).clone().attr('id','input'+newNum);
//操纵新元素内输入的名称/id值
newElem.children(':first').attr('id','name'+newNum).attr('name','name'+newNum);
newElem.children(':first').attr('id','txtEmail'+newNum).attr('txtEmail','txtEmail'+newNum);
//在最后一个“可复制”输入字段后插入新元素
$('#input'+num).after(newElem);
//启用“删除”按钮
$('btnDel').attr('disabled','');
//业务规则:只能添加5个名称
如果(newNum==5)
$('btnAdd').attr('disabled','disabled');
});
$('#btnDel')。单击(函数(){
var num=$('.clonedInput').length;//当前有多少个“可复制”输入字段
$('#输入'+num).remove();//删除最后一个元素
//启用“添加”按钮
$('btnAdd').attr('disabled','');
//如果只剩下一个元素,请禁用“删除”按钮
如果(num-1==1)
$('btnDel').attr('disabled','disabled');
});
$('btnDel').attr('disabled','disabled');
});
全名

我还需要将计数分配给某个隐藏字段,以便可以对用户创建的字段数运行插入查询

试试下面的方法。我对代码的结构做了一些修改,即:
*创建所有可见克隆都将从中克隆的隐藏模板
*使添加/删除按钮按需工作
*添加了隐藏字段,其中包含项目数
*将大量代码放入函数以供重用

<script type="text/javascript">

    // document - on load
    $(document).ready(function() {

        // add the first item
        AddInput();
        UpdateButtons();

        // add button - click
        $('#btnAdd').click(function() {
            AddInput();
            UpdateButtons();
        });

        // delete button - click
        $('#btnDel').click(function() {
            $('.clonedInput:last').remove();
            UpdateButtons();
        });

    });

    function AddInput()
    {
        // how many cloned input fields we currently have
        var numItems = $('.clonedInput').length; 
        var newNum = new Number(numItems + 1);

        // create the new element via clone() based on hidden template
        var newElem = $('.templateInput').clone();

        // update attributes on parent tag
        newElem.attr('id', 'input' + newNum);
        newElem.attr('class', 'clonedInput');
        newElem.show();         

        // update child elements
        newElem.children('#lblSno').html(newNum + ' ' + newElem.children('#lblSno').html());
        newElem.children('#lblSno').attr('id', 'lblSno' + newNum);
        newElem.children('#name').attr('id', 'name' + newNum);
        newElem.children('#txtEmail').attr('id', 'txtEmail' + newNum);

        // insert the new element
        $('#allInputs').append(newElem);
    }

    function UpdateButtons()
    {
        // get number of items
        var numItems = $('.clonedInput').length;

        // only enable delete button when there is more than 1 item
        if (numItems > 1)
            $('#btnDel').removeAttr('disabled');
        else
            $('#btnDel').attr('disabled', 'disabled');

        // only enable add button when there are less than 5 items
        if (numItems < 5)
            $('#btnAdd').removeAttr('disabled');
        else
            $('#btnAdd').attr('disabled', 'disabled');

        // update the hidden field
        $('#hdnNumItems').val(numItems);                
    }
</script>

//文件-已加载
$(文档).ready(函数(){
//添加第一项
AddInput();
UpdateButtons();
//添加按钮-单击
$('#btnAdd')。单击(函数(){
AddInput();
UpdateButtons();
});
//删除按钮-单击
$('#btnDel')。单击(函数(){
$('.clonedInput:last').remove();
UpdateButtons();
});
});
函数AddInput()
{
//我们目前有多少个克隆输入字段
var numItems=$('.clonedInput').length;
var newNum=新的数字(numItems+1);
//基于隐藏模板通过clone()创建新元素
var newElem=$('.templateInput').clone();
//更新父标记上的属性
newElem.attr('id','input'+newNum);
newElem.attr('class','clonedInput');
newElem.show();
//更新子元素
newElem.children('#lblSno').html(newNum+''+newElem.children('#lblSno').html());
newElem.children('#lblSno').attr('id','lblSno'+newNum);
newElem.children('#name').attr('id','name'+newNum);
newElem.children('#txtEmail').attr('id','txtEmail'+newNum);
//插入新元素
$('#allInputs')。追加(newElem);
}
函数UpdateButtons()
{
//获取项目数
var numItems=$('.clonedInput').length;
//仅当存在多个项目时才启用删除按钮
如果(numItems>1)
$('btnDel').removeAttr('disabled');
其他的
$('btnDel').attr('disabled','disabled');
//仅当项目少于5项时启用“添加”按钮
if(numItems<5)
$('btnAdd').removeAttr('disabled');
其他的
$('btnAdd').attr('disabled','disabled');
//更新隐藏字段
$('hdnNumItems').val(numItems);
}


全名

有成千上万种方法可以做你想做的事情,这完全取决于你选择使用哪种方法。因此,在不干扰逻辑和简单使用自己的代码的情况下,为了添加序列号,只需添加以下一行:

newElem.text(newNum + " ) Full Name " );

就这样。你的序列号已经准备好了

将输入命名为
fullname[]
(查找“数组表示法”)是否更简单,以便您在提交后可以轻松地对其进行迭代?到目前为止,我没有成功,我已经尝试了4个小时。。。我知道最终它会非常简单,但仍然不起作用。我尝试了一个代码$('#name'+num);它只在第一次单击时添加,但在单击后不添加任何内容
newElem.text(newNum + " ) Full Name " );