首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不通过jQuery提交的情况下强制执行html5表单验证

如何在不通过jQuery提交的情况下强制执行html5表单验证
EN

Stack Overflow用户
提问于 2012-08-08 22:37:43
回答 21查看 314.6K关注 0票数 317

我的应用程序中有这个表单,我将通过AJAX提交它,但我想使用HTML5进行客户端验证。因此,我希望能够强制执行表单验证,可能是通过jQuery。

我想在不提交表单的情况下触发验证。有可能吗?

EN

Stack Overflow用户

发布于 2016-03-20 04:31:56

您不需要使用jQuery来实现这一点。在您的表单中添加:

代码语言:javascript
运行
复制
onsubmit="return buttonSubmit(this)

或者在JavaScript中:

代码语言:javascript
运行
复制
myform.setAttribute("onsubmit", "return buttonSubmit(this)");

在您的buttonSubmit函数(或您称之为它的任何函数)中,您可以使用AJAX提交表单。只有当您的表单在HTML5中经过验证时,才会调用buttonSubmit

如果这对任何人都有帮助,下面是我的buttonSubmit函数:

代码语言:javascript
运行
复制
function buttonSubmit(e)
{
    var ajax;
    var formData = new FormData();
    for (i = 0; i < e.elements.length; i++)
    {
        if (e.elements[i].type == "submit")
        {
            if (submitvalue == e.elements[i].value)
            {
                submit = e.elements[i];
                submit.disabled = true;
            }
        }
        else if (e.elements[i].type == "radio")
        {
            if (e.elements[i].checked)
                formData.append(e.elements[i].name, e.elements[i].value);
        }
        else
            formData.append(e.elements[i].name, e.elements[i].value);
    }
    formData.append("javascript", "javascript");
    var action = e.action;
    status = action.split('/').reverse()[0] + "-status";
    ajax = new XMLHttpRequest();
    ajax.addEventListener("load", manageLoad, false);
    ajax.addEventListener("error", manageError, false);
    ajax.open("POST", action);
    ajax.send(formData);
    return false;
}

我的一些表单包含多个提交按钮,因此使用if (submitvalue == e.elements[i].value)这一行。我使用单击事件设置了submitvalue的值。

票数 3
EN
查看全部 21 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11866910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档