jQuery显示表单警告框

时间:2013-01-25 11:11:12

标签: jquery jquery-validate alert

您好我正在尝试按下提交按钮时显示警告或样式弹出框,其中显示空字段。添加alert("Empty Fields!!");

后,下面的代码停止了工作
var validator = $("#reg_form").validate({
    errorLabelContainer: $("#reg_form div.error"),
    meta: "validate",
    alert("Empty Fields!!");
});

4 个答案:

答案 0 :(得分:2)

我发布了这个,在接受了另一个答案之后,为了未来读者的利益,因为其他答案似乎每个都包含一些技术错误并且缺乏解释。


如果只接受.validate()对形式的预定义选项,则不能简单地将JavaScript插入key:value。有关所有可用选项,请参阅文档:http://docs.jquery.com/Plugins/Validation/validate#toptions

如您所见,您需要在其中一个可用的alert("Empty Fields!!");处理程序中将function分配到callback。由于邮件为Empty Fields!!,因此我会选择invalidHandler回调选项。 As per the docsinvalidHandler是:“提交无效表单时自定义代码的回调。”

相反,submitHandler:是:“表单有效时处理实际提交的回调。”〜由于邮件包含{{1} },你不希望在有效的表格上显示它。

Empty Fields!!括在.validate()函数中以确保在初始化插件时完全构造HTML表单也是一个好主意。

工作演示:http://jsfiddle.net/QYCwH/

document.ready

请注意:在这种情况下,将$(document).ready(function() { var validator = $("#reg_form").validate({ errorLabelContainer: $("#reg_form div.error"), meta: "validate", invalidHandler: function(form, validator) { alert("Empty Fields!!"); } }); }); 分配给名为.validate()的变量没有任何用处。由于validator只应在上调用一次准备初始化插件,因此您不需要再次引用它,所以拥有它真的没有优势它被分配给变量。

如果您需要触发表单的验证测试或需要表单当前状态的布尔值,只需使用the .valid() method

.validate()

$("#reg_form").valid();  // triggers a validation check without having to submit

答案 1 :(得分:1)

我假设http://docs.jquery.com/Plugins/Validation/validate是您的代码引用的jQuery插件。

您不能在课堂声明中使用警报。你必须像这样重写它:

var validator = $("#reg_form").validate({
    errorLabelContainer: $("#reg_form div.error"),
    meta: "validate",
    submitHandler: function( form ) {
        alert("Empty Fields!!");
    }
});

或使用invalidHandler:function(form,validator)而不是submitHandler

答案 2 :(得分:1)

朋友以供将来参考

validate接受一个json字符串,该字符串格式为{'key1':'value1','key1':'value1'},因此键值和键值对之间必须有一个分号,用逗号分隔,请将其用作键值对,即{'error':function(){alert('hello');}}

答案 3 :(得分:0)

var validator = $("#reg_form").validate({
    errorLabelContainer: $("#reg_form div.error"),
    meta: "validate",
    error: function(){alert("Empty Fields!!")};
});

只需将error属性替换为适当的属性...

更新::

刚检查过jQ docs ......

error处理程序替换为submitHandler

var validator = $("#reg_form").validate({
    errorLabelContainer: $("#reg_form div.error"),
    meta: "validate",
    submitHandler: function(myForm){alert("Empty Fields!!")};
});