无法使输入验证JavaScript正常工作

问题描述 投票:0回答:1

很抱歉,如果这个问题的答案不正确(我第一次使用堆栈溢出)。我正在尝试验证是否在用户按下“提交”时填写了我在表单上的输入,当输入为空时,它还会提醒用户,但在输入为空时,它会提醒用户,我不确定出了什么问题。这是我的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

javascript forms validation submit
1个回答
0
投票

用于访问表单元素和元素值的一般语法是:

document.forms[number].elements[number]


document.forms[number].elements[number].value

0
投票

如果您使用的是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>

0
投票

正如我的评论所建议,最干净的解决方案是使用将html属性添加到输入中所需的html属性。

看起来像这样。

<form>
 <input type="text" name="example" required>
 <input type="submit" name="send">
</form>

最大的优点是,它不需要任何额外的JS就可以工作,我认为这始终是首选的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.