用javascript验证表单的正确方法是什么?

时间:2017-06-28 19:40:27

标签: javascript forms

我应该提交"提交"相反" form_name"在最后一段代码中?什么是正确的方法? 谢谢!

function check() {
    var title = document.getElementById("title");
    var content = document.getElementById("content");
    if (title == "") {
        alert("title is required");
        return false;
    }
    if (content == "") {
        alert("content is required");
        return false;
    }
    var submit = document.getElementById("form_name");
    submit.submit();
}

这是我的表格

<form action="#" method="post" id="form_name" name="form_name">
    <input type="text" name="title" id="title" />
    <textarea name="content" id="content" cols="30" rows="10"></textarea>
    <input type="submit" value="Submit" id="submit" name="submit" onclick="return check();"/>
</form>

2 个答案:

答案 0 :(得分:0)

首先,您要选择一个元素并按其作用

var title = document.getElementById("title");  <-- DOM element
if (title == "") { <-- checking the DOM against a string.

您应该使用.value来获取输入内容。

接下来,您要提交表单....但是您点击了表单内的提交按钮,以便提交表单。所以这不需要。

function check() {
    var title = document.getElementById("title").value;
    var content = document.getElementById("content").value;
    if (!title.trim().length) {
        alert("title is required");
        return false;
    else if (!content.trim().length) {
        alert("content is required");
        return false;
    }
    return true
}

永远不会提出任何提交的内容,只会导致问题。

答案 1 :(得分:0)

在最近的浏览器中,您可以使用更多功能

function myFunction() {
    var inpObj = document.getElementById("id1");
    if (inpObj.checkValidity() == false) {
        document.getElementById("demo").innerHTML = inpObj.validationMessage;
    }else{
      document.getElementById("demo").innerHTML = "";
    }
}
<input id="id1" type="number" min="100" max="300" required>
<button onclick="myFunction()">OK</button>

<p id="demo"></p>

参考: https://www.w3schools.com/js/js_validation_api.asp