簡體   English   中英

如何制作帶有驗證的JavaScript表單,提交后不起作用

[英]How do I make a JavaScript form with validation and when submitted it goes nowhere

<!DOCTYPE html>
<html>
<head>
<script>
function validateForm() {
    var x = document.forms["myForm"]["fname"].value;
    if (x == null || x == "") {
        alert("Name must be filled out");
        return false;
    }
}
</script>
</head>
<body>

<form name="myForm" action="demo_form.asp"
onsubmit="return validateForm()" method="post">
Name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>

</body>
</html>

我目前正在嘗試學習如何制作帶有驗證的JavaScript表單,並且當按下按鈕時,它只會提示用戶其表單已提交,並且實際上並沒有將表單發送到任何地方。

您需要使用Event.preventDefault()

您可以在此處了解更多信息。 在事件流的任何階段調用preventDefault將取消事件,這意味着實現通常不會由於事件而執行任何默認操作。

看到jsfiddle這里有兩個輸入框。 請注意<br>進行換行,將每個輸入框放在新行上。

<script>
function validateForm(e) {
       e.preventDefault();
        var x = document.forms["myForm"]["fname"].value;
        if (x == null || x == "") {
            alert("Name must be filled out");
            return false;
        }
    }
</script>

<body>
   <form name="myForm" action="demo_form.asp"
       onsubmit="return validateForm(event)" method="post">
       Name: <input type="text" name="fname"><br>
       New TextBox: <input type="text" name="textBox"><br>
      <input type="submit" value="Submit">
   </form>
</body>

如果在處理函數中具有事件對象的參數,則onclick事件將解析事件對象,因此您可以執行以下操作:

function validateForm(evt) {
//.preventDefault is a method of JavaScript events 
    evt.preventDefault();
}

因此,基本上,您可以在按下“提交”按鈕之前或之后添加邏輯,以進行客戶端驗證,並取消驗證失敗的事件,然后對用戶的脾氣暴躁而生氣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM