2013-05-16 36 views
3

我使用的引导wysiwyg5编辑器作为一种形式的一部分。验证在引导wysiwyg5编辑

这个文本区域恰好是一个必填字段(不应该是空的)。我想验证用户是否已输入任何值到该字段或不。我看到Bootstrap wysiwyg使用Iframe来显示内容。我试图通过这样访问jQuery中iframe的内容:

$('.textarea.wysihtml5-editor').html() 

但是失败。

我的问题是:如何检查,如果用户已经进入了这个引导一些文字所见即所得textarea。请帮助我。

PS:我看到this的问题,但它不是非常有帮助。

回答

11

我知道这个问题是旧的,但也许帮助别人寻找这..

为了让jQuery验证与WysiHtml5工作,只是设置插件不能忽视隐藏的文本域:

$('#form').validate({ 
    ignore: ":hidden:not(textarea)",  
    rules: {  
     WysiHtmlField: "required" 
    }, 
    submitHandler: function(form) { ... } 
}); 
+0

你是对的!我必须以艰难的方式解决这个问题! :) – codeMan

+0

谢谢,这对我来说非常合适。 – user752746

+0

保存了我很多的时间!非常感谢你 –

2

你要听的模糊事件再检查编辑器的editor.textareaElement得到根本textarea的。

var editor = new wysihtml5.Editor("wysihtml5-editor"); 

editor.on('blur', function() { 
    if(this.textareaElement.value.length === 0) { alert('no blank entries!'); } 
}); 

大多数这个信息是对他们的wiki:https://github.com/xing/wysihtml5/wiki

+0

上午对不起,这不行!第一行不起作用: 'var editor = new wysihtml5.Editor(“wysihtml5-editor”);''不起作用!其中 '$(“。textarea”)。wysihtml5();'-works – codeMan

+0

伙计,样本的核心是你需要的。我包含了上面的这行代码,告诉你需要收集编辑器对象。 o_O – rlemon

1
您使用 引导-wysihtml5和rlemon回答您的常规非引导主题WYSIHTML5代码

VAR编辑器=新wysihtml5.Editor( “wysihtml5编辑器”);

代码实际上是引导,wysihtml5-0.0.2.js(或任何版本,你使用)

但是这个包装定义编辑对象window.editor这样你就可以创建你这样的模糊函数中,之后你启动你的wysihtml5元素。

window.editor.on('blur', function() { 
// do whatever you want to do on blur 
}); 
1

我想我找到了一个解决方案,通过jQuery的,我们加入nicehide类我们wysihtml5,现在我们可以验证它,我把它隐藏与可见性隐藏,也许我们的代码可能没有它,其它的解决方案可以放在IFRAME类和nicehide到相同的位置......

jQuery('.wysihtml5').wysihtml5({ 
"events":  { 
"load": function() { 
jQuery('.wysihtml5').addClass('nicehide'); 
} 
} 
}); 


.nicehide { 
resize: none; 
display: block !important; 
width: 0; 
height: 0; 
margin: -200px 0 0 0; 
float: left; 
visibility:hidden; 
} 

由于https://github.com/jhollingworth/bootstrap-wysihtml5/issues/275,我只加能见度..

0

HTML5验证(= “需要”,例如所需的)不工作。 发生这种情况是因为原始字段是隐藏的。

在案例的基础上你的问题的引导wysiwyg5编辑验证,试试这个:

jQuery('.wysihtml5').wysihtml5({ 
    "events":  { 
     "load": function() { 
      jQuery('.wysihtml5').addClass('nicehide'); 
     } 
    } 
}); 

,它是为CSS:

.nicehide { 
    resize: none; 
    display: block !important; 
    width: 0; 
    height: 0; 
    margin: 0 0 0 -15px; 
    float: left; 
    border: none; 
} 

希望帮助你:)