jQuery验证始终返回true

时间:2011-09-27 02:27:38

标签: jquery jquery-validate

我有这个HTML;

<form action="" method="post" name="ApplyForm" id="ApplyForm" enctype="multipart/form-data">
  <input type=text class="required"/>
  <input type="submit" onclick="return validateForm()" class="submit" value="Submit Application" title="Submit application" />

和我的剧本;

    $(function () {
        $("#ApplyForm").validate();
    });

    function validateForm() {
        alert($(".email").valid());

        return false;
    }

所以正在发生的事情是,如果我提醒alert($("#ApplyForm").valid());我总是如实,但如果我提醒各个字段我得到了预期的结果,但表格仍然回复;

此代码有效但我不确定为什么验证不在表单上工作;

    function validateForm() {
        if ($(".required").valid() == 0)
            return false;
        else
            return true;
    }

我知道这不是很多,但我希望其他人有这种体验,可以告诉我一个解决方案。

3 个答案:

答案 0 :(得分:0)

<form action="" method="post" name="ApplyForm" id="ApplyForm" onSubmit="return validateForm()" enctype="multipart/form-data">
    <input type=text class="required"/>
    <input type="submit" class="submit" value="Submit Application" title="Submit application" />

答案 1 :(得分:0)

尝试在表单中的第一个经过验证的元素中添加name属性:

<input type=text required name='blah' />

我花了2个小时追踪同一个问题,我发现如果表单中的FIRST验证元素具有name属性,那么一切都按预期工作(即.valid()将如果表单无效,则返回false)。其他经过验证的元素是否具有名称属性似乎没有区别。

在普通形式中,您肯定需要名称属性,因为这是将数据提交到服务器时使用的属性。但是在更现代的环境中,例如那些使用Knockout的环境,没有理由在输入元素上有name属性,因为数据绑定可以保持数据模型的更新。

答案 2 :(得分:0)

你应该添加

<input type="text" data-val="true" name="name" data-required="1">

对于不显眼的HTML 5兼容属性,描述要附加到输入字段的验证器

其他信息Click here