在执行ajax之后,Firefox将所有表单字段显示为错误

时间:2019-03-20 10:37:27

标签: javascript ajax forms

我有一个联系方式表格。

我使用Ajax提交表单,并根据结果在表单上方显示一条消息。

问题是,当从Ajax返回结果时,浏览器(Firefox)将所有字段标记为错误。我希望浏览器不要这么做。

对于ajax,我使用的是纯JavaScript:

function sendAjax(event) {
        event.preventDefault();
        var xhr, form;
        form = event.target;
        xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                setResponseMessage(form, JSON.parse(xhr.responseText).message);
                resetForm(form);
......

// this function cleans the fields after submit.
function resetForm(form) {
        for (var i = 0; i < form.elements.length; i++) {
                if (form.elements[i].type !== 'submit' || form.elements[i].name === DOMStrings.csrf) {
            form.elements[i].value = '';
        }
            }
        }
    }

enter image description here

==================

我不使用form.reset(),因为我有一个不想清理的隐藏字段。

此外,该问题与清理字段无关,问题在于提交后, Firefox自动将corect Ajax传输为,根据HTML属性将表单字段设为无效,并添加了红色的阴影。

我只希望Firefox按原样显示表单。不涉及第三方或其他代码验证。

0 个答案:

没有答案