我有一个联系方式表格。
我使用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 = '';
}
}
}
}
==================
我不使用form.reset()
,因为我有一个不想清理的隐藏字段。
此外,该问题与清理字段无关,问题在于提交后, Firefox自动将corect Ajax传输为,根据HTML属性将表单字段设为无效,并添加了红色的阴影。
我只希望Firefox按原样显示表单。不涉及第三方或其他代码验证。