如何处理错误并只显示一次

时间:2014-06-25 14:59:37

标签: javascript jquery

我正在验证表单,每次点击提交都会调用它,并且它会一直显示这些错误,因此处理错误是不是很糟糕?以及如何更改代码,它只显示一次,那些错误?

<a href="#" onclick="validateForm() ? window.document.forms[0].submit() : false"  id="submit">Sūtīt &rarr;</a>

Js文件

window.onload = function() {
null;
}

function renderErrors(errors) {
for (var i=0; i < errors.length; i++) {
    $("#errors").append("<div> &raquo; " + errors[i] + "</div>");
};
}

function validateForm() {
result = true;
var errors = [];

if (document.getElementById("full-name").value == '') {
    errors.push("Lauks 'Vārs, Uzvārds' ir jānorāda obligāti");
    result = false;
}
if (document.getElementById("telefonanr").value == '') {
    errors.push("Lauks 'Telefona numurs' ir jānorāda obligāti");
    result = false;
}
if (document.getElementById("zinojums").value == '') {
    errors.push("Lauks 'Ziņojums' ir jānorāda obligāti");
    result = false;
}

if (errors[0] == undefined) {
    return true;
} else {
    renderErrors(errors);
    return false;
}
}

2 个答案:

答案 0 :(得分:1)

添加以下行

  $("#errors").html('');

之前

   $("#errors").append("<div> &raquo; " + errors[i] + "</div>");

像:

   $("#errors").html('');
   $("#errors").append("<div> &raquo; " + errors[i] + "</div>");

答案 1 :(得分:1)

修改您的renderErrors功能以在追加之前清空内容。

function renderErrors(errors) {
  var container = $('#errors');
  container.empty();
  for (var i=0; i < errors.length; i++) {
    container.append("<div> &raquo; " + errors[i] + "</div>");
  };
}