在JavaScript中显示本机验证消息
我目前正在开发一个由HTML5功能和jQuery支持的表单。我的任务之一是确保本机“请填写此字段”消息仍然可用于本机支持验证的浏览器 我的设置如下所示:在JavaScript中显示本机验证消息,javascript,jquery,validation,html,Javascript,Jquery,Validation,Html,我目前正在开发一个由HTML5功能和jQuery支持的表单。我的任务之一是确保本机“请填写此字段”消息仍然可用于本机支持验证的浏览器 我的设置如下所示: |----------| | FORM | |----------| ===BUTTON=== 表单有几个部分,因此按钮在所有部分上都是全局的。如果完成,表格将滑至下一节 这就是我现在看到的,它正确地向表单触发按钮事件,并触发submit事件 $(".next").click(function() { var $incomin
|----------|
| FORM |
|----------|
===BUTTON===
表单有几个部分,因此按钮在所有部分上都是全局的。如果完成,表格将滑至下一节
这就是我现在看到的,它正确地向表单触发按钮事件,并触发submit
事件
$(".next").click(function() {
var $incoming = $(".nextPart #" + (currentSlide));
var incomingID = $incoming.data("cardid");
var partCode = "form-" + incomingID;
$("form[name='" + partCode + "']").trigger("submit");
});
$("form").bind('submit', function(event) {
var goForth = true;
if(!event.currentTarget.checkValidity()) goForth = false;
if(!goForth) return false;
/* Do some stuff with progress bar and more things */
return true;
});
但是,即使表单提交失败,也没有验证消息。有没有一种方法可以实用主义地针对某个元素,或者我做了什么蠢事
为了澄清,这是我正在讨论的验证消息的屏幕截图。
而不是
事件.currentTarget.checkValidity
--执行此操作
function checkValidity(elem) {
// check validity here
// retun true/false
}
if(checkValidity(event.currentTarget)) { ...
然后在提交处理程序中执行以下操作
function checkValidity(elem) {
// check validity here
// retun true/false
}
if(checkValidity(event.currentTarget)) { ...
另外,trigger
本机浏览器事件通常不是一个好主意--trigger
适用于自定义事件--如果需要提交表单,可以调用表单对象的submit()
方法,如下所示
$("form[name='" + partCode + "']").get(0).submit();
而不是
event.currentTarget.checkValidity
--执行此操作
function checkValidity(elem) {
// check validity here
// retun true/false
}
if(checkValidity(event.currentTarget)) { ...
然后在提交处理程序中执行以下操作
function checkValidity(elem) {
// check validity here
// retun true/false
}
if(checkValidity(event.currentTarget)) { ...
另外,trigger
本机浏览器事件通常不是一个好主意--trigger
适用于自定义事件--如果需要提交表单,可以调用表单对象的submit()
方法,如下所示
$("form[name='" + partCode + "']").get(0).submit();
正如我在第一篇文章中所描述的,我在一个全局范围内的按钮上使用了一个
单击事件。然后向表单发送submit
操作,表单虽然发送要提交的表单,但并没有在元素上触发气泡事件(不管是什么)
为了解决这个问题,我将所有幻灯片包装为一种形式,而不是多张形式。我把提交按钮放在幻灯片外面,所以它仍然是一个全局导航项
从该按钮中删除单击
事件并将其类型更改为提交
现在将显示气泡
这不是最好的解决方案,因为气泡应该能够在不提交表单的情况下触发,但是,我想通过HTML5验证,您可以定义接受和不接受的参数。正如我在第一篇文章中所述,我在全局范围内的按钮上使用了一个单击事件。然后向表单发送submit
操作,表单虽然发送要提交的表单,但并没有在元素上触发气泡事件(不管是什么)
为了解决这个问题,我将所有幻灯片包装为一种形式,而不是多张形式。我把提交按钮放在幻灯片外面,所以它仍然是一个全局导航项
从该按钮中删除单击
事件并将其类型更改为提交
现在将显示气泡
这不是最好的解决方案,因为气泡应该能够在不提交表单的情况下触发,但是,我想通过HTML5验证,您可以定义接受和不接受的参数。事件。currentTarget
是一个DOM节点——您是否为其提供了checkValidity
属性?否,但是当我使用console.log()
时,它显示为一个属性。该属性是一个函数--typeof event.currentTarget==“function”
false
和console.log(typeof event.currentTarget)
报告一个对象
+1,该对象具有一个名为goForth
事件的变量引用。currentTarget
是一个DOM节点--您是否为其指定了checkValidity
属性?没有,但在使用console.log()时
它显示为属性。该属性是函数--typeof event.currentTarget==“function”
false
和console.log(typeof event.currentTarget)
报告一个对象
+1,该对象具有一个名为goForth
的变量引用。这对显示验证消息没有帮助,我可以手动验证自己,但由于无法按照我的格式执行我想要的操作,我会接受你的答案。我实际上不接受你的答案,因为我解决这个问题的方式与你的建议没有真正的联系。这对我显示验证消息没有帮助,我可以手动验证自己,但由于没有办法做我想做的事,所以我使用了,我接受你的答案。我实际上不接受你的答案,因为我解决这个问题的方式与你的建议没有真正的联系。