【发布时间】:2012-06-24 13:05:57
【问题描述】:
我有一个包含多个输入字段的公式的站点。在所有这些输入字段中,我都有包含一些描述的占位符属性。 但是我们都知道占位符属性在 IE 中不起作用,所以我也使用 jQuery Placeholder Enhanced 来使占位符在 IE 中显示。这行得通。
但同时我正在使用 jQuery validate 来验证我的表单。当我按下提交按钮并且验证失败时,所有占位符在 IE 中都消失了。
我的验证如下所示:
$(".myForm").validate({
submitHandler: function (form) {
$.post("/handlers/CustomHandler.ashx", $(".myForm").serialize(),
function (data) {
if (data.result.type == "message") {
$(".myForm").parent().html(data.result.data);
}
else if (data.result.type == "redirect") {
location.href = data.result.data;
}
}
);
}
});
我尝试过使用 invalidHandler 选项并再次触发 placeholderEnhanced() 函数,如下所示:
$(".myForm").validate({
submitHandler: function (form) {
$.post("/handlers/CustomHandler.ashx", $(".myForm").serialize(),
function (data) {
if (data.result.type == "message") {
$(".myForm").parent().html(data.result.data);
}
else if (data.result.type == "redirect") {
location.href = data.result.data;
}
}
);
},
invalidHandler: function () {
if (!Modernizr.input.placeholder) {
$('input[placeholder], textarea[placeholder]').placeholderEnhanced();
}
}
});
但不幸的是,它不起作用。 如果我复制粘贴这一行:
$('input[placeholder], textarea[placeholder]').placeholderEnhanced();
进入我的 IE 控制台并在验证发现一些错误后触发它,占位符再次显示。 我也尝试过发出警报(“表格中有错误”);在 if-sentence 中,当按下表单中的提交按钮时显示。
任何人都有一些线索可以知道什么是错误的,以及如何在按下提交按钮后使占位符在 IE 中不消失并且验证无效。
提前致谢!
/金
【问题讨论】:
标签: jquery forms internet-explorer validation placeholder