Forms 如何使用jquery validate在一个字段上添加具有不同处理的多个规则

Forms 如何使用jquery validate在一个字段上添加具有不同处理的多个规则,forms,jquery-plugins,jquery-validate,Forms,Jquery Plugins,Jquery Validate,如何添加表单验证,在单个文本字段上有多个规则, 根据规则的不同,还有不同的操作 例如,faq模块中有预定义的问题,用户可以保存和/或发布其答案 我有一个表单,有一个文本区域和两个按钮 1按钮提交表单,将数据库中输入的值保存为草稿 1按钮提交表单以保存和发布输入的值 <form> <input type="hidden" class="answerdraft"/> <label class="answerlabel" for="answer">A

如何添加表单验证,在单个文本字段上有多个规则, 根据规则的不同,还有不同的操作

例如,faq模块中有预定义的问题,用户可以保存和/或发布其答案

我有一个表单,有一个文本区域和两个按钮 1按钮提交表单,将数据库中输入的值保存为草稿 1按钮提交表单以保存和发布输入的值

<form>
    <input type="hidden" class="answerdraft"/>
    <label class="answerlabel" for="answer">Answer:</label>
    <textarea name="answer" class="answer" rows="8" cols="40"></textarea>
    <input class="submitAnswer" type="submit" value="Save"/>
    <input type="button" class="publishAnswer" value="Save & Publish"/>
</form>
这并不完全是我想要的,它只使用1条规则,然后在错误方法中,我测试设置righ tbuttons enabled,但这意味着按钮被正确地启用,但文本字段有时会在不需要显示错误而是中性状态时获得错误状态

我相信我需要重做我的逻辑,不要在1 valid:或error:函数中进行,而是使用rules选项,但不清楚如何将enable/disable功能绑定到带有rules对象的按钮


欢迎任何人给我指出正确的方向。

我想我是在想, 我发现所有按钮的启用/禁用不应该直接绑定到验证规则,因为即使规则失败,字段中的数据在技术上也不是“无效”的

因此,我使用jquery验证插件只是为了检查字段是否为空 如果空按钮应该同时禁用,如果不是空的,我只执行一个新功能 这就完成了检查前一个条目的逻辑

因此,如果字段值作为初始值(草稿),则只有“发布”按钮处于启用状态 否则,两者都可以启用

我知道这并不是一个真正需要解决的技术问题,更像是一个解决方案,但它现在解决得比我用validate解决时要好

$("textarea.answer", question).validate({
    valid: function(val){
        var answerdraft = $('input.answerdraft', question).val();
        enable_button($('.submitAnswer', question));
        enable_button($('.publishAnswer', question));
        return val != "" && !val.match(/^\s+$/) && (val != answerdraft);
    },
    errorMessage: function(val){
        var answerdraft = $('input.answerdraft', question).val();
        if(val == answerdraft)
        {
            disable_button($('.submitAnswer', question));
            enable_button($('.publishAnswer', question));
        }
        else
        {
            disable_button($('.submitAnswer', question));
            disable_button($('.publishAnswer', question));
        }
        return _t.validationanswerrequired;
    },
    appendCompletionIcon: true
});