我有一个带有远程验证字段的表单。我的JavaScript如下:
$("#myform").validate({
rules: {
mainfield: {
remote:{
url: "checksnote.php",
type: "POST",
data: {
mainfield: function() {
return $("#mainfield").summernote('isEmpty');
}
}
}
}
},
messages:{
mainfield: {
remote: "This field is required",
//minlength: "Minimum Length is 10"
}
},
submitHandler: function(form) {
alert("Successfully submittable");
console.log("Successfully submittable");
form.submit();
}
});
字符串
问题是我根本无法得到任何回应。两个远程请求都显示有效,但在浏览器中看不到 AJAX 请求。Mainfield是summernote textarea。所有其他验证都运行得非常好。你知道为什么remote连请求都不发吗?
**更新-**我也尝试添加方法没有工作。这就是为什么我尝试远程代替。任何一个都很好,如果对我有用。这是我的方法代码。浏览器未显示任何错误。
$.validator.addMethod('sumnoteempty', function(value,element){
//return false;
if(element.summernote('isEmpty')){
console.log("In summernote validation!");
return false;
}
else {
return true;
}
}, "Must enter summernote content");
型
规则如下:
rules: {
mainfield: {
sumnoteempty: true
}
},
message:{
sumnoteempty: "Field can not be empty"
}
型
我不明白我在这里做错了什么。它甚至不显示消息在控制台。所有其他验证逻辑都运行良好。除了远程和添加方法。
1条答案
按热度按时间fd3cxomn1#
不需要查询服务器来评估字段何时为空。创建使用Summernote
isEmpty
方法的自定义规则。字符串
https://jqueryvalidation.org/jQuery.validator.addMethod/
由于Summernote隐藏了原始的
textarea
元素并构建了自己的元素,因此您需要做一些其他事情来将这些元素整合在一起:ignore
选项,以强制验证隐藏的textarea
元素。默认情况下忽略隐藏元素。errorPlacement
选项更改验证消息在屏幕上的显示位置。它可能不合适,因为实际的数据输入元素被隐藏了。blur
或change
处理程序和强制测试的.valid()
方法来触发验证。blur
上触发的处理程序,它调用.valid()
,然后隐藏包含错误消息的label
元素。