添加新的输入字段后,html javascript表单不再工作



我有以下html和javascript代码用于对输入字段进行验证,这是对名字的一个输入字段进行的,但由于我试图通过添加姓氏的新输入字段来扩展我的代码,现在表单验证已停止,如下所示:

function myFunction() {
let x = document.getElementsByName("first_name").[0]value;
let y = document.getElementsByName("last_name")[0].value;
let text;
text = "";

if (x == '' ||  x == null) {
text = "Input not valid";
}
document.getElementById("first_name_errors").innerHTML = text;
}
if (y == '' ||  y == null) {
text = "Input not valid";
}
document.getElementById("last_name_errors").innerHTML = text;
}

document.addEventListener('invalid', (function () {
return function (e) {
e.preventDefault();
document.getElementsByName("first_name").focus();
document.getElementsByName("last_name").focus();
};
})(), true);
</head>
<body>
<input type="text" name="first_name"  placeholder="first name" name class="input_fields" required>
<div class="error-message" id="first_name_errors"></div>
<input class="save_btn" type="submit" value="Save" name="save_fname" onclick="myFunction()">
<br><br>
<input type="text" name="last_name"  placeholder="last name" name class="input_fields" required>
<div class="error-message" id="last_name_errors"></div>
<input class="save_btn" type="submit" value="Save" name="save_lname" onclick="myFunction()">

我如何在添加了额外的输入字段姓氏的情况下恢复工作?提前感谢

这里有很多错误。您可以通过调试console.log自行找到它们

  1. 错误,在let x = document.getElementsByName("first_name").[0]value;
  2. 有一个对多的}
  3. eventlistener需要在输入上,而不应该在check函数内
  4. 您的输入上有空的name属性

将其盲修复,这将类似于:

let firstName = document.getElementsByName('first_name')[0];
let lastName = document.getElementsByName('last_name')[0];
function checkValid() {
let x = firstName.value;
let y = lastName.value;
let text;
text = '';
if (x == '' || x == null) {
text = 'Input not valid';
}
document.getElementById('first_name_errors').innerHTML = text;
if (y == '' || y == null) {
text = 'Input not valid';
}
document.getElementById('last_name_errors').innerHTML = text;
}
firstName.addEventListener('invalid', function () {
firstName.focus();
});
lastName.addEventListener('invalid', function () {
lastName.focus();
});
<input type="text" name="first_name"  placeholder="first name" class="input_fields" required>
<div class="error-message" id="first_name_errors"></div>

<input class="save_btn" type="submit" value="Save" name="save_fname" onclick="checkValid()">
<br><br>
<input type="text" name="last_name"  placeholder="last name" class="input_fields" required>
<div class="error-message" id="last_name_errors"></div>

<input class="save_btn" type="submit" value="Save" name="save_lname" onclick="checkValid()">

最新更新