0
<html>
<head>
<title></title>
<script language="javascript">
fields = 0;
function addInput() {
if (fields != 3) {
document.getElementById('text').innerHTML += "<input type='text' value='' /><br />";
fields += 1;
} else {
document.getElementById('text').innerHTML += "<br />Only 3 fields allowed.";
document.form.add.disabled=true;
}
}
</script>
</head>
<body>
<form name="form">
<input type="button" onClick="addInput()" name="add" value="Add input field" />
</form>
</body>
</html>

问题是如果提交此代码,我如何知道已添加的每个输入文本的名称。

感谢您的帮助,我是 JS 的新手。

4

3 回答 3

0
var fields = 0,
    button = document.getElementById( 'button' ),
    text = document.getElementByIs( 'text' ),
    addInput = function() {
        if( fields !== 3 ) {
            fields += 1;
            text.appendChild( '<input type="text" value="" name="fields" /><br />' );
        } else {
            text.appendChild( '<br />Only 3 fields allowed.' );
            document.form.add.disabled = true;
        }
    };
if( window.addEventListener ) {
    button.addEventListener( 'click', addInput, false );
} else if( window.attachEvent ) {
    button.attachEvent ( 'onclick', addInput );
} else {
    button[ 'onclick' ] = addInput; 
}
于 2013-08-01T05:11:04.723 回答
0

当您在 JavaScript 代码中创建它们时,您可以为它们分配 ID 和名称。以下示例在创建时为每个输入提供了 ID 和名称“field1”、“field2”和“field3”:

<script language="javascript">
    fields = 0;
    function addInput() {
        if (fields != 3) {
            fields += 1;
            document.getElementById('text').innerHTML += "<input id='field" + fields + "' name='field" + fields + "' type='text' value='' /><br />";
        } else {
            document.getElementById('text').innerHTML += "<br />Only 3 fields allowed.";
            document.form.add.disabled=true;
        }
    }
</script>

然后,您可以使用以下名称称呼它们:

var myFirstField = document.getElementById('field1');

在回发时,如果表单提交到另一个页面,您可以引用他们的姓名。

于 2013-08-01T03:58:36.037 回答
0

您可以将您的名称字段更改为 html 数组,例如

<input type="button" onClick="addInput()" name="add[]" value="Add input field" />

然后,当您提交代码时,您会得到一个 add.array 数组。

希望这会有所帮助。

于 2013-08-01T03:59:16.317 回答