繁体   English   中英

使用JavaScript动态重命名表单元素

[英]dynamically renaming form elements with JavaScript

我在表单中有一个表格,其中填充了各种输入框。 我已经编写了各种JavaScript函数,这些函数将允许用户在表中添加或删除行,并且还将动态重命名用户输入行之后的元素名称(如果这样的话-希望我的代码能够解释我正在尝试做的事情)。

这在IE9,Firefox和Chrome中有效,但不适用于IE7(我组织中的许多人仍在使用XP)。

该代码不是我写过的最精美的东西,但是我需要在明天将它演示给大家之前对其进行修复! (因此,即使目前这是一个快速而肮脏的解决方法,我也愿意考虑任何事情!)

谢谢!

for (var e = 0; e < editForm.elements.length; e++) {
    // Increment 'add row' buttons so that they add underneath the correct row
    if (editForm.elements[e].name.length >= 4) {
        if (editForm.elements[e].name.substr(0, 4) == 'add_') {
            stringPos = editForm.elements[e].name.indexOf('_');
            currentQuestionNumber = editForm.elements[e].name.substr(stringPos + 1);
            if (currentQuestionNumber > pos) {
                editForm.elements[e].name = 'add_' + (parseInt(currentQuestionNumber) + 1);
                editForm.elements[e].id = 'add_' + (parseInt(currentQuestionNumber) + 1);
                editForm.elements[e].setAttribute("onclick", "addRow(" + (parseInt(currentQuestionNumber) + 1) + ");");
            }
        }
    }

代替...

editForm.elements[e].name = 'add_' + (parseInt(currentQuestionNumber) + 1);

我也用过

editForm.elements[e].setAttribute("name", "add_" + (parseInt(currentQuestionNumber) + 1));

...但这在IE7中也不起作用。 任何帮助表示赞赏。

如果要更改名称的元素是动态创建的,则可能会遇到IE6 / 7错误。 Web Bug Track博客上有一个指向setAttribute错误的可能解决方法的指针。 您可能还会发现“更改jQuery中克隆的输入元素的名称属性在IE6 / 7中不起作用”的答案很有用。

暂无
暂无

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

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