0

我曾经使用 jquery 验证插件,但由于缺少带有所见即所得插件的插件,我编写了一个简单的脚本来验证我的表单

我试着这样做

function validateArticle(formData, jqForm, options) { 
  $('#errors').empty();
  if ($('#editor').val() == 0) { 
    $('#errors').show();
    $('#errors').append('<li>please enter your article body</li>');
    return false; 
  } 
  if ($('#ArticleTitle').val() == 0) { 
    $('#errors').show();
    $('#errors').append('<li>please enter your article title</li>');
    return false; 
  }
  $('#errors').hide();
  return true ;
}

我在验证表单时发现了 1 个问题,它正在逐字段验证它,因此错误消息不会立即出现

我试图做类似的事情

var errors = [];
function validateArticle(formData, jqForm, options) { 
  $('#errors').empty();
  if ($('#editor').val() == 0) { 
    errors.push('<li>please enter your article body</li>');
    var invalid = 1 ;
    return false; 
  } 
  if ($('#ArticleTitle').val() == 0) { 
    errors.push('<li>please enter your article title</li>');
    var invalid = 1 ;
    return false; 
  }
  if(invalid == 1){
    $.each(errors , function(i, val) { 
      $('#errors').append(errors [i]); 
    });
  }

  $('#errors').hide();
  return true ;
}

我试图将错误推送为数组元素并在无效的情况下循环遍历它们是真的但是这个根本不起作用?

有什么办法让它工作吗?

4

1 回答 1

2
if ($('#editor').val() == 0)   // This is checking if value is 0

这没有意义..试试

if ($('#editor').val() == '') //Instead check for empty string

编辑 另外,您似乎最终隐藏了错误的 div。

 $('#errors').hide();

试试这个代码

$('#validate').on('click', function() {
    var errors = [];
    var html = '<ul>' ;
    valid = true;
    $('#errors').empty();
    if ($('#editor').val() == '') {
        errors.push('<li>please enter your article body</li>');
        valid = false;
    }
    if ($('#ArticleTitle').val() == '') {
        errors.push('<li>please enter your article title</li>');
         valid = false;
    }
    if (!valid) {
        html += errors.join('') + '</ul>' 
            $('#errors').append(html);

    }
    else{
        $('#errors').hide();
    }
    return valid;
});​

演示

于 2012-10-02T23:00:37.243 回答