我知道這個問題已被問及之前,我已閱讀所有以前的問題,我仍然無法獲得jQuery驗證器來正確驗證CKEditor字段。與CKEditor的jQuery驗證插件
我的形式是以下:
<form id="faq-form">
<p>
<label>Title:</label>
<input type="text" id="faq-title" name="faq-title" class="faq-title" />
</p>
<p>
<label for="question">Question:</label>
<textarea name="question" id="question"></textarea>
</p>
<p>
<label for="answer">Answer:</label>
<textarea name="answer" id="answer"></textarea>
</p>
<p>
<input id="submit-faq" name="submit-faq" type="submit" value="Submit" />
</p>
</form>
兩個文本域轉換爲使用的CKEditor字段:
<script>
CKEDITOR.replace('question', { toolbar : 'forum' });
CKEDITOR.replace('answer', { toolbar : 'forum' });
</script>
當我試圖驗證,只有標題字段中得到確認。我不確定我做錯了什麼。這裏是我驗證的javascript代碼(以下是jQuery文檔就緒函數的座標)。
$('#faq-form').submit(function() {
// Update textareas with ckeditor content
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].updateElement();
$.trim($('#' + i).val());
}
// Validate the form
if (! $('#faq-form').validate({
rules: {
'faq-title': {
required: true,
minlength: 5
},
answer: {
required: true,
minlength: 20
},
question: {
required: true,
minlength: 20
}
}
}).form()) {
console.log('Form errors');
return false;
}
一旦確認完成,我將使用.post的$方法,而不是一個正常的形式的GET或POST這樣我就可以無需重新加載更新我的網頁。 $ .post在驗證方法之後,但我不認爲有必要顯示。
您不應該在條件內使用['.validate()'](http://docs.jquery.com/Plugins/Validation/validate#options)。這就是['.valid()'方法](http://docs.jquery.com/Plugins/Validation/valid)的用途。 '.validate()'僅用於_initializing_插件與您的規則和選項。一旦初始化,那麼可以在條件中使用'.valid()'來觸發一個測試並返回一個布爾值。 – Sparky 2013-02-22 00:32:12
Sparky的好處。我應該注意到我的回答實際上是正確的。 – podperson 2013-02-22 01:44:45
所以,當文檔準備就緒時,我應該使用所有配置來運行$ .validate(),然後在$('#form')。submit()方法中,在窗體上運行.valid() – Sean 2013-02-22 03:13:22