Jquery验证和Summernote

时间:2014-08-10 10:57:12

标签: jquery validation summernote

我已经成功地运行了jquery验证和summernote一段时间。

它正在运行,现在我在form.valid()上收到错误。注释字段不需要验证。

我已经将我的代码剥离到最低限度,并削减了忽略设置 - 如果我删除了忽略设置它是否有效,如果我忽略设置,它会中断,使用"验证器未定义&#34 ;错误

我已经设置了一个小提琴,所以你可以看到它工作而不工作,它目前设置不起作用

http://jsfiddle.net/JGuymer/83q0r21s/22/

<form id="form">   
<textarea id="textarea"></textarea>
<a id="clickme" href="#">click Me</a>
</form>

的JQuery:

$(document).ready(function() {
    $("#textarea").summernote();
    //uncomment to work
    //$('#form').validate();       
    //uncomment to fail
    $('#form').validate({ignore:[]})     
    $("#clickme").click(function(){      
        validate();         
        return false;
    })
});

function validate() {
 if ($('#form').valid()) {
 alert('valid');
 }
}

任何想法都将不胜感激

由于 詹姆斯

3 个答案:

答案 0 :(得分:3)

我有类似的问题。

首先,您可以将jquery.validate设置为忽略隐藏字段(IIRC,summernote有很多),除了您要验证的字段:

$.validator.setDefaults({ ignore: ":hidden:not(.class-of-hidden-field-i-want-to-validate-1, class-of-hidden-field-i-want-to-validate-2, class-of-hidden-field-i-want-to-validate-3...) }); 

为我修好了。

此外,每当我与添加链接的模态对话框(summernote v0.5.10)进行交互时,我都会

Uncaught TypeError: Cannot read property 'settings' of `undefined`

on jquery.validate.js:360

看着summernote.js我可以拥有:

var tplDialog = function (className, title, body, footer) {
        return '<div class="' + className + ' modal" aria-hidden="false">' +
                 '<div class="modal-dialog">' +
                   '<div class="modal-content">' +
                     (title ?
                     '<div class="modal-header">' +
                       '<button type="button" class="close" aria-hidden="true" tabindex="-1">&times;</button>' +
                       '<h4 class="modal-title">' + title + '</h4>' +
                     '</div>' : ''
                     ) +
                     '<form class="note-modal-form">' + // ERROR CAUSE
                       '<div class="modal-body">' +
                         '<div class="row-fluid">' + body + '</div>' +
                       '</div>' +
                       (footer ?
                       '<div class="modal-footer">' + footer + '</div>' : ''
                       ) +
                     '</form>' + // ERROR CAUSE
                   '</div>' +
                 '</div>' +
               '</div>';
    };

我的(临时)修复正在用form标记的行中的div替换// ERROR CAUSE。也许我错过了一些东西,但我并没有真正看到将其作为一种形式的重点。

不建议更改此代码(您可能希望更新到更新版本,从而丢失更改...),但这是一个足够好的修复,直到他们解决它。

答案 1 :(得分:2)

我遇到了同样的问题。 我将问题追溯到名为&#39; note-modal-form的子表单。 为了解决这个问题,我在初始化部分添加了以下内容:

var validateform = function () {

    $('.note-modal-form').each( function() { $(this).validate({}) });
...     

答案 2 :(得分:0)

我遇到了同样的问题,事实证明,summernote隐藏了没有名字的字段。验证失败,您可以忽略字段或只是转到summernote js js代码并添加名称,就像我一样。 希望这会有所帮助。

输入字段用于弹出summernote的模式,例如添加你的内容。enter image description here