jQuery 校验:如何让字符数不包含CKEditor生成的token?
jQuery Validation: how to make the amount of characters no include the tokens generated by CKEditor?
在我的 Rails 应用程序中,我想对 CKEditor 的数据使用 jQuery 验证插件,它工作正常,除了 a little inappropriate count
包括 CKEditor 生成的令牌。以下是主要代码:
http://jsfiddle.net/sscs1kbx/3/
Html:
<textarea name="answer[content]" class="required" id="editor1"></textarea>
<script> CKEDITOR.replace('answer[content]');</script>
<br />
javascript:
$('#add-job').validate({
ignore: [],
rules: {
"answer[content]": {required: function(){CKEditorUpdate();},
minlength: 18 }
},
messages: {
"answer[content]": "Required at least 10 characters"
},
});
function CKEditorUpdate(){
for(instance in CKEDITOR.instances){
CKEDITOR.instances[instance].updateElement();
}
}
这里,minlength
设置为minlength: 18
,但我只能输入11
个字符ddddddddddd
,所以我猜最终的textarea的字符数包括诸如<p></p>
,但我希望jQuery验证只包括用户输入的字符,怎么办?
终于解决了,因为简单的设置一些参数并不能排除html的token,我用addMethods
给它指定了一个叫minlengthxo
的方法:http://jsfiddle.net/sscs1kbx/4/
jQuery.validator.addMethod("minlengthxo", function (value, element,param) {
originalVal = CKEDITOR.instances.editor1.getData().replace(/<[^>]*>/g, '');
var length = $.isArray( originalVal ) ? value.length : this.getLength( originalVal, element );
return length >= param;
}, "default errorMessage");
$('#add-job').validate({
ignore: [],
rules: {
"answer[content]": {
required: function()
{
CKEditorUpdate();
},
minlengthxo: 18
}
},
messages: {
"answer[content]": "You need input at least 18 characters, now you entered "
},
});
function CKEditorUpdate(){
for(instance in CKEDITOR.instances){
CKEDITOR.instances[instance].updateElement();
}
}
在我的 Rails 应用程序中,我想对 CKEditor 的数据使用 jQuery 验证插件,它工作正常,除了 a little inappropriate count
包括 CKEditor 生成的令牌。以下是主要代码:
http://jsfiddle.net/sscs1kbx/3/
Html:
<textarea name="answer[content]" class="required" id="editor1"></textarea>
<script> CKEDITOR.replace('answer[content]');</script>
<br />
javascript:
$('#add-job').validate({
ignore: [],
rules: {
"answer[content]": {required: function(){CKEditorUpdate();},
minlength: 18 }
},
messages: {
"answer[content]": "Required at least 10 characters"
},
});
function CKEditorUpdate(){
for(instance in CKEDITOR.instances){
CKEDITOR.instances[instance].updateElement();
}
}
这里,minlength
设置为minlength: 18
,但我只能输入11
个字符ddddddddddd
,所以我猜最终的textarea的字符数包括诸如<p></p>
,但我希望jQuery验证只包括用户输入的字符,怎么办?
终于解决了,因为简单的设置一些参数并不能排除html的token,我用addMethods
给它指定了一个叫minlengthxo
的方法:http://jsfiddle.net/sscs1kbx/4/
jQuery.validator.addMethod("minlengthxo", function (value, element,param) {
originalVal = CKEDITOR.instances.editor1.getData().replace(/<[^>]*>/g, '');
var length = $.isArray( originalVal ) ? value.length : this.getLength( originalVal, element );
return length >= param;
}, "default errorMessage");
$('#add-job').validate({
ignore: [],
rules: {
"answer[content]": {
required: function()
{
CKEditorUpdate();
},
minlengthxo: 18
}
},
messages: {
"answer[content]": "You need input at least 18 characters, now you entered "
},
});
function CKEditorUpdate(){
for(instance in CKEDITOR.instances){
CKEDITOR.instances[instance].updateElement();
}
}