我正在使用jquery validate插件验证文本框,但是当我提交按钮时它没有验证。在firebug中提交Handler时显示错误:
错误
TypeError:$(...)validate is not a function
代码
function saveData() {
$(document).ready(function () {
$("#form1").validate({
rules: {
txtName: {
required: true
}
},
message: {
txtName: {
required: "Field should not be empty"
}
},
submitHandler: function (form) {
var txtName = $("#txtName").val();
var txtEmail = $("#txtEmail").val();
var txtSurName = $("#txtSurName").val();
var txtMobile = $("#txtMobile").val();
var txtAddress = $("#txtAddress").val();
$.ajax({
type: "POST",
url: location.pathname + "/saveData",
data: "{Name:'" + txtName + "',SurName:'" + txtSurName + "',Email:'" + txtEmail + "',Mobile:'" + txtMobile + "',Address:'" + txtAddress + "'}",
contentType: "application/json; charset=utf-8",
datatype: "jsondata",
async: "true",
success: function (response) {
$(".errMsg ul").remove();
var myObject = eval('(' + response.d + ')');
if (myObject > 0) {
bindData();
$(".errMsg").append("<ul><li>Data saved successfully</li></ul>");
}
else {
$(".errMsg").append("<ul><li>Opppps something went wrong.</li></ul>");
}
$(".errMsg").show("slow");
clear();
},
error: function (response) {
alert(response.status + ' ' + response.statusText);
}
});
}
});
$("#btnSave").click(function () {
$("#form1").submit()
});
});
}
我在点击按钮时调用此功能。请帮帮我。
按钮字段的设计页面是
答案 0 :(得分:0)
您似乎尚未加载jquery验证插件。它告诉你jquery对象上没有验证函数。
答案 1 :(得分:0)
你有很多问题......
1)你没有在你的jsFiddle中包含jQuery Validate插件,如果你的评论是正确的,你不能在插件之后包含jQuery 。 jQuery首先包含 ,然后是任何jQuery插件。
2)您的ID选择器错误。在<form>
标记中,您有id="form1"
,但在您的jQuery选择器中,您有#Form1
。这是区分大小写。
3)jQuery validate插件要求输入具有唯一的name
属性。您根本没有任何name
属性。这将成为一个游戏终结者。如果要在每个name
元素上使用input
属性进行验证,该插件将无效。
4)messages
选项拼写为"messages"
。你把它拼错为"message"
。
5)您的按钮上不需要内联单击处理程序。只需将其设为type="submit"
并允许插件自动处理它。这意味着您不需要将.validate()
包装在另一个函数中。只需将其放在DOM ready事件处理程序中,以便在页面加载后立即设置表单并准备就绪。
这个让你更接近:http://jsfiddle.net/dxEEe/2/
基于通用的编辑:
使用点击type="button"
进行提交只需要click
处理程序来捕获按钮。
$("#btnSave").click(function() {
$("#form1").submit();
});
OR
$("#btnSave").on('click', function() {
$("#form1").submit();
});
虽然,我不明白这一点,但最终,click
处理程序中唯一的内容是submit
。换句话说,简单地使用type="submit"
按钮将具有完全相同的功能,而无需任何click
处理函数。
(在your jsFiddle中,"function"
拼错为"functioin"
。我认为您需要放慢速度,因为许多问题与拼写有关。)