如何验证表单而不显示任何错误消息

时间:2013-08-08 10:36:24

标签: jquery-validate

我不明白如何使用jquery validate验证表单是否显示“提交”按钮。

我的javascript如下:

ko.bindingHandlers.jqValidate = {
init: function (element, valueAccessor, option) {

    var element = element;

    var validateOptions = {
        ignore: [":hidden:not(required)"],
        focusCleanup: true,
        onsubmit: true
    };

    function displaySubmitButton() { // Remove/Add class to submit button
        if ($('form').valid()) $('.toSave').show();
        else $('.toSave').hide();
    }

    $('form').bind('onchange keyup onpaste', function (event, element) {
        if ($('form').valid() === true && $(element).not('.resetForm')) $('.toSave').show();
        else if ($(element).not('.resetForm')) $('.toSave').hide();
    });
}
};

我的表格:

<ol class="MutColor13 mouseOver" data-bind="jqValidate: {}">
    <li class="rightCol">
        <strong>
            <label for="iEmailReply"><asp:Literal runat="server" ID="lEmailReply" /></label>
        </strong>
        <input id="iEmailReply" name="EmailReply" type="text" tabindex="2"
            class="MutColor13 email"
            data-bind="value: communication.Message.ReplyEmail, valueUpdate: 'afterkeydown'"
            required="required" />
    </li>
    <li class="leftCol">
        <strong>
            <label for="iEmailFrom"><asp:Literal runat="server" ID="lEmailFrom" /></label>
        </strong>
        <input id="iEmailFrom" name="EmailFrom" type="text" tabindex="1"
            class="MutColor13 email"
            data-bind="value: communication.Message.SenderEmail, valueUpdate: 'afterkeydown'"
            required="required" />
    </li>
    <!-- and more form input -->
</ol>

我的提交按钮:

<div class="buttonBlock rightButton"  data-bind="fadeVisible: validateMessage()">
    <a class="MutButton3 toSave" data-bind="click: saveMessage"><span class="MutButton3">submit</span></a>
</div> 

当我在firebug控制台中键入“$('form')。valid()”时,会显示所有错误消息。我不认为提交按钮是问题,因为我此时没有点击

如果所有字段都有效,如果字段(以及页面中的任何其他表单字段)允许显示提交按钮,如何启用输入短更改时显示错误消息?

我受到这个问题的启发:jquery validate: IF form valid then show submit button

工作演示:http://jquery.bassistance.de/validate/demo/ 但按钮会连续显示

1 个答案:

答案 0 :(得分:0)

好吧我认为这可行:

http://jsfiddle.net/Ay972/10/

我做了什么:

  $('form').bind('change oninput', function (event, element) {
        console.log('formLive :: ', $(event));

        if ($('form').valid() === true && $(element).not('.resetForm')) $('.toSave').show();
        else if ($(element).not('.resetForm')) $('.toSave').hide();
    });

'oninput'似乎有效。