验证javascript中的输入没有'不起作用

Validating Input in javascript didn't work

本文关键字:不起作用 javascript 输入 验证      更新时间:2024-06-08

为什么这个简单的javascript代码没有正确运行http://codepen.io/anon/pen/wBXKQYhtml

 <form id="scoreForm" name="scoreForm"  onsubmit="validateForm();">

            <label for="score">Score:</label>
            <input id="score" name="score" />
            <input type="submit" value="submit" />

    </form>

js

  function validateForm() {
            var score = document.getElementById("score").value;
            var scoreReg = /^'s*('+|-)?'d+'s*$/;
            if (score.match(scoreReg))
            { alert("the score pass"); return false; }
        }

我只需要执行HTML5输入属性功能之外的验证。

试试这个:

onsubmit="return validateForm();"

而不是

onsubmit="validateForm();"

演示

<form id="scoreForm" name="scoreForm">
    <label for="score">Score:</label>
    <input id="score" name="score" />
    <input type="submit" value="submit" />
</form>
<script>
document.getElementById('scoreForm').addEventListener('submit', validateForm);
function validateForm(ev) {
  var scoreVal = +document.getElementById('score').value;
  if (scoreVal < 10) {
    alert('Sorry your score is too low!');
    ev.preventDefault();
  }
}
</script>

笔:http://codepen.io/ferahl/pen/GgGpLd

注:

最好不要真的对任何事情使用ID,使用类,用document.querySelectordocument.querySelectorAll查询它们。

你在那里看到的+转换成一个数字(缩写)

最好使用"不引人注目"的javascript-我使用addEventListener 在JS中添加事件处理程序

preventDefault停止表单提交。还有另一个有用的函数stopPropagation,您可以研究它。Return false同时执行这两个操作-最好知道要执行哪一个或同时执行这两者。

在此调用validateForm()方法

<input type="submit" value="submit" onclick="validateForm();"/>

代码笔中存在一些错误

你可以在w3schools尝试http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onsubmit