我正在使用JavaScript练习表单验证,但是当我尝试从页面检索数据时,它提交给我无法获得它。
form.html
<body>
Hello.<br />
<form onsubmit="return validate()" action="process.php" method="POST">
Enter name: <input type="text" id="name" /><br />
Enter phone number: <input type="text" id="number" /><br />
Enter password: <input type="password" id="paswd" /><br />
Is there anything else you would like to add: <input type="text" id="anything" /><br />
<input type="submit" value="Check Form" />
</form>
</body>
process.php
<?php
echo 'Here: '.$_POST['number']
?>
无论我使用什么索引,我都会得到“Undefined index:line 2”。我做错了什么?
编辑:所以我无法使用我需要id
的{{1}}属性?无论如何都要阻止编码冗余,因为所有name
的值都与相应的name
相同?
答案 0 :(得分:6)
您的字段中需要name
属性
<input type="text" id="number" name="number" />
$_POST
在字段中查找name
属性以捕获字段值,而不是id
答案 1 :(得分:4)
您的输入需要元素的名称。
如:
<input type="text" id="number" name="number" />
Php获取表单数据,而不是ID。
答案 2 :(得分:2)
您忘记了name
输入:
<input type="text" id="number" name="number" />
答案 3 :(得分:2)
您需要提供表单元素名称。
<input type="password" id="paswd" name="paswd" />
有趣的是,名称和ID共享相同的名称空间。如果你真的不需要id,请留下它们。在验证函数中,您始终可以使用表单的elements
对象访问所有元素。
// called onsubmit
var validate = function(e) {
if (this.elements["paswd"].value.length < 4) {
alert("password needs to have at least 4 characters");
return false;
}
return true
};
我通常会将输入类型附加到我的ID以区别于字段名称
<label for="paswd-txt">Password: </label>
<input type="text" name="paswd" id="paswd-txt" />
<label for="save-cb">Remember me: </label>
<input type="checkbox" name="save" id="save-cb" value="1"/>
答案 4 :(得分:2)
所以就像Vitor Braga所说你的输入需要元素的名称,但如果你使用PHP在提交中使用表单的值,你只需要这个,如果你使用javascript来验证就像你说你正在做的那样你可以得到这样的价值:
的document.getElementById( “数字”)。值