很抱歉,如果这个问题的答案不正确(我第一次使用堆栈溢出)。我正在尝试验证是否在用户按下“提交”时填写了我在表单上的输入,当输入为空时,它还会提醒用户,但在输入为空时,它会提醒用户,我不确定出了什么问题。这是我的Javascript:
<script>
function validation() {
var x = document.forms["bookingForm"]["id"].value;
if (x == "") {
alert("Ensure all fileds are filled");
return false;
} else {
sendSMS();
alert("Success");
return true;
}
}
</script>
这里是指向代码扩展部分的链接,以供参考:https://pastebin.com/Dj5fA3gB
用于访问表单元素和元素值的一般语法是:
document.forms[number].elements[number]
document.forms[number].elements[number].value
如果您使用的是SubmitButton,并且正在对表单的onSubmit调用验证,那么您需要调用event.preventDefault();
<!DOCTYPE html>
<html>
<body>
<form onsubmit="validation()" name="bookingForm">
First Name: <input type="text" name="id" value="Donald"><br>
Last Name: <input type="text" name="lname" value="Duck">
<input type="submit" value="Submit" />
</form>
<script>
function validation() {
event.preventDefault();
var x = document.forms["bookingForm"]["id"].value;
if (x == "") {
alert("Ensure all fileds are filled");
return false;
} else {
sendSMS();
alert("Success");
return true;
}
}
</script>
</body>
</html>
正如我的评论所建议,最干净的解决方案是使用将html属性添加到输入中所需的html属性。
看起来像这样。
<form>
<input type="text" name="example" required>
<input type="submit" name="send">
</form>
最大的优点是,它不需要任何额外的JS就可以工作,我认为这始终是首选的解决方案。