Javascript 表单验证

标签 javascript html

我试图让两个函数检查每个表单输入,一个用于 onchange(),另一个用于 onkeypress();我这样做的原因是在您使用 onchange() 或 onblur() 离开输入字段后显示输入是否有效,并且我还想检查输入字段是否为空,以删除指示错误的消息输入是使用 onkeypress() 输入的,这样它就可以更新而不必离开该字段(如果用户要删除他们对警告消息的响应。)

它根本没有按我预期的方式工作,所以我想知道是否有明显的错误。

我的代码是这样的:

<form action="database.php" method = post>

    Username 
    <input type='text' id='un' onchange="checkname()" onkeypress="checkempty(id)" />
    <div id="name"></div><br>
    .....
</form>

和 Javascript:

<script type="text/javascript">
function checkname() {
    var name = document.getElementById("un").value;
    var pattern = /^[A-Z][A-Za-z0-9]{3,19}$/;

    if (name.search(pattern) == -1) {
        document.getElementById("name").innerHTML = "wrong";
    }
    else {
        document.getElementById("name").innerHTML = "right!";
    }
}

function checkempty(id) {
    var temp = document.getElementById(id).value;

    if (!temp) {
        document.getElementById("name").innerHTML = '';
    }
}
</script>

最佳答案

根据您在评论中的说明,我建议使用 onkeyup 事件而不是 onkeypress(onkeypress 仅跟踪生成字符的键 - backspace 没有)。切换事件将允许您在用户按下退格键时进行验证。

这是 a working fiddle .

编辑: 请参阅此 SO 问题以进一步说明:Why doesn't keypress handle the delete key and the backspace key

关于Javascript 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300818/

相关文章:

JavaScript:获取自定义按钮的文本值

html - iText 5 可以将 PDF 转换为 HTML 吗?

html - CSS:链接悬停在 Chrome 和 Safari 中不起作用

javascript - 自定义 Facebook 评论集成(JS SDK)

javascript - 在使用 BIND() 将自定义组件方法绑定(bind)到组件时,我们可以将第一个参数作为组件本身传递吗?

html - 我应该在 <aside> 中使用 <section> 标签吗?

css - 制作 html 幻灯片的工具/框架(类似于/优于 keynote)?

javascript - polymer 和D3 : How to send JSON from element attribute to template

javascript - Ajax 不发布到 div

javascript - 在javascript中构建一个简单的ajax类