使用自定义函数验证表单

时间:2013-11-09 04:27:16

标签: jquery

我正在尝试验证表单以检查THIS JSFIDDLE处的输入是否为空 当我在validateEmpty()函数中直接使用.submit()函数的整个主体时,我能够成功验证表单,但只是为了保持组织,我试图将所有内容放在函数中({{1} })并通过validateEmpty()函数调用它,但出于任何原因,验证过程无效!

以下是我的代码:

.submit()
你可以告诉我我做错了什么吗?感谢

2 个答案:

答案 0 :(得分:3)

validateEmpty函数在其末尾返回truefalse,但在您的事件处理程序中,您永远不会return,因此jQuery永远不会获得该值。您只需要向处理程序添加return调用:

$('#myform').submit(function() {
  return validateEmpty();
});

另外,请注意,如果您不需要做任何额外的事情,可以直接传递该功能:

$('#myform').submit(validateEmpty);

根据评论中的要求,这里有两种参数化validateEmpty函数的方法:

function validateEmpty($inputs) {
  var abort = false;
  $("div.err").remove();

  $inputs.each(function() {
    if ($(this).val()==='') {
        $(this).parent().after('<div class="err">This is a Requierd Field</div>');
        abort = true;
    }
  });

  if (abort) { return false; } else { return true; }
}

$("#myform").submit(function() {
  // Take the 'required' inputs inside #myform only
  var $inputs = $(this, "input[required]");
  return validateEmpty($inputs);
});

答案 1 :(得分:1)

请在你的jsfiddle示例中添加jquery框架并尝试

$('#myform').submit(function() {
  return validateEmpty();
});