我试图获取用户名"用户名"和#34;密码"在提交表单之前验证其中是否有信息的字段。
我需要添加到我的HTML和JavaScript中才能使它们正常工作!如果你想推荐一个新的JavaScript,请做!
HTML:
<form action="validateForm.html" id="registrationForm">
<label for="username" id="usernameLabel">* Username:</label>
<input type="text" name="username" id="username" value="Your username" />
<div id="usernameError" style="display:none"></div>
<br/><br/>
<label for="password" id="passwordLabel">* Password:</label>
<input type="password" name="password" id="password" />
<div id="passwordError" style="display:none"></div>
<br/><br/>
<input type="submit" value="Submit Form" id="submit" />
</form>
的JavaScript
function validateForm()
{
if(!document.getElementByName("username"))
{
alert("Username field is required!");
}
if(!document.forms[0].username){
alert("Username field is required!");
}
if(!document.for (var i = username.length - 1; i >= 0; i--) {
alert("Username field is required!")
};)
}
&#13;
答案 0 :(得分:0)
一种方法是通过id
获取输入,然后验证其值
<强> HTML 强>
<input type="text" id="username" />
<input type="password" id="password" />
<强> JS 强>
function validateForm()
{
if(!document.getElementById("username").value) // true if input value is null, undefined or ""
{
alert("Username field is required!");
}
else if(!document.getElementById("password").value)
{
alert("Username field is required!");
}
}
(我强烈建议您使用比JS警报更有吸引力的方式为用户提供反馈)
答案 1 :(得分:0)
我认为所有这些检查在某些方面是不正确的,让我们从第一个检查开始:
if(!document.getElementByName("username"))
{
alert("Username field is required!");
}
document.getElementsByName()
(注意复数)下一个是类似的:
if(!document.forms[0].username){
alert("Username field is required!");
}
document.getElementBy...
。最后:
if(!document.for (var i = username.length - 1; i >= 0; i--) {
alert("Username field is required!")
};)
看起来你试图制作一个for
循环但是从上面复制粘贴并弄得一团糟......甚至不去试图理解为什么循环。
<强>建议:强>
id
并使用document.getElementById()
.value
onsubmit="validateForm()"
)false
(否则即使字段不正确也会发送表单)required
属性。所以函数看起来像:
function validateForm()
{
if(document.getElementById("username").value == "")
{
alert("Username field is required!");
return false;
}
// check the other fields
// .....
}
答案 2 :(得分:0)
如果您需要通过名称获取 DOM ,则表示它将返回Array
,因此您需要通过
if(!document.getElementsByName("username")[0].value == ""){
//do ur stuff
}
或
if(!document.getElementById("username").value == ""){
//do ur stuff
}
答案 3 :(得分:0)
我可以建议这样的事情:
HTML:
<form action="validateForm.html" onSubmit="return validateForm(this)">
<label for="username" name="usernameLabel">* Username:</label>
<input type="text" name="username" id="username" placeholder="Your username" />
<div id="usernameError" style="display:none"></div>
<br/><br/>
<label for="password" name="passwordLabel">* Password:</label>
<input type="password" name="password" />
<div id="passwordError" style="display:none"></div>
<br/><br/>
<input type="submit" value="Submit Form" />
</form>
JS:
function isEmpty (field) {
return field.value === "";
}
function validateForm (form) {
// assume the form to be valid
var isValid = true;
// create a variable to store any errors
var errors = "";
// check if the username is empty
if(isEmpty(form.username)) {
// our assumption is incorrect, the form is invalid
isValid = false;
// append the error message to the string
errors += "Username field is required!\n";
}
if (isEmpty(form.password)) {
isValid = false;
errors += "Password field is required!\n";
}
// display the errors if the form is invalid
if (!isValid) {
alert(errors);
}
return isValid;
}
这样,您将表单直接传递给validateForm函数,并可以使用其名称属性轻松访问每个字段。然后,您可以通过确定其值包含的内容来检查它们是否为空。