简体   繁体   English

如何通过jQuery为动态表单元素分配动态ID

[英]how to assign dynamic id's for dynamic form elements through jquery

i'm using jquery plugin which enables the user to add dynamic form attributes at that time i want to assign dynamic id's based on table row count because the form elements present in b/w table tr td. 我正在使用jquery插件,该插件使用户当时可以添加动态表单属性,我想基于表行数分配动态ID,因为黑白表tr td中存在表单元素。 here is my code for generating dynamic tr's 这是我用于生成动态tr的代码

<script>

function onClick(e) {
    var element = e.target.querySelector('[contenteditable]'), row;

    element && e.target != document.documentElement && e.target != document.body && element.focus();

    if (e.target.matchesSelector('.add')) {
        var rc = $('.inventory tbody tr').length; //rcount
                   document.querySelector('table.inventory tbody').appendChild(generateTableRow(rc));
    }
    else if (e.target.className == 'cut') {
        row = e.target.ancestorQuerySelector('tr');

        row.parentNode.removeChild(row);
    }


}

 function generateTableRow(x) {
        var emptyColumn = document.createElement('tr');
        var now=Number(x)+1; 
        alert(now);     
emptyColumn.innerHTML = '<td><a class="cut">-</a><span contenteditable><input type="text" id="now" name="products[]" onkeydown=display(now,this.value)></span></td>' +
        '<td><span contenteditable></span></td>' +
        '<td><span data-prefix>$</span><span contenteditable>0.00</span></td>' +
        '<td><span contenteditable>0</span></td>' +
        '<td><span data-prefix>$</span><span>0.00</span></td>';

    return emptyColumn;
}

function display(id,value)
{
alert(id); // here it was displaying as object node list.it was not showing its id which was a number.
}
</script>

please help me to get the exact id of a particular text field. 请帮助我获取特定文本字段的确切ID。

Now is variable.... Now是可变的...

When you are using variables in an inline javascript you should take care of the inverted commas... 当您在内联JavaScript中使用变量时,应注意使用逗号分隔...

Use this code.... 使用此代码...。

function generateTableRow(x) {
    var emptyColumn = document.createElement('tr');
    var now=Number(x)+1; 
    emptyColumn.innerHTML = '<td><a class="cut">-</a><span contenteditable><input type="text" id="'+now+'" name="products[]" onkeydown=display(this)></span></td>' +
                            '<td><span contenteditable></span></td>' +
                            '<td><span data-prefix>$</span><span contenteditable>0.00</span></td>' +
                            '<td><span contenteditable>0</span></td>' +
                            '<td><span data-prefix>$</span><span>0.00</span></td>';
                     return emptyColumn;
}


function display(field){   // just pass the element
   alert(field.id+" , "field.value); // this will give id and value
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM