2013-05-16 75 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; 
} 

希望幫助你:)