提交时显示隐藏的潜水,但表单不是't有效
Show a Hidden Div on submit but form isn't valid
我使用.slideToggle()来隐藏/显示同一表单中的两个div。第一部分是用户信息,第二部分是订单部分。
一切都很好,除非用户在幻灯片切换中隐藏了顶部(用户信息),但它是无效的(意味着字段缺少数据或不是正确的数据)。当他们单击"提交"按钮时,它只是将字段高亮显示为红色,并在浏览器(在本例中为firefox)的右下角显示一条消息,说"此字段无效"。但是用户不知道哪个字段无效,除非他们单击div使其再次激活slideToggle。
我试图让它在用户点击提交按钮时,如果表单无效(使用HTML5"必需"字段或模式),它将显示隐藏的(通过slideToggle)div,这样用户就知道他们的表单为什么没有通过。
这是我迄今为止尝试过的代码:
$("form").submit(function(){
var testvalue = "Hi!";
alert(testvalue);
if (!$(this).valid()) {
$("#user_info_div_2").show();
$("#user_info_div_3").show();
}
});
我也试过:
("#po_form")
这是我表单的ID,而不是("form"),但没有什么不同。
我发现,只有当表单开头有效时,此代码才会触发。(警报只是我测试以确保代码正在启动的方式)这意味着submit()函数只有在表单实际提交时才会启动(这是有道理的)。
我也试过:
$("#po_submit_button").click(function(){
if (!$(this).valid()) {
var testvalue = "Not Valid Form";
alert(testvalue);
}
});
这也没有影响点击按钮。
我没有使用javascript验证,所以.valid()失败的原因可能是因为我没有正确使用它?
表单很简单,它只是在一些字段上有"required"属性,其中1个字段使用模式属性来确保状态只有2个字符。如果你需要的话,我可以发布表单的代码,但它的设计"简单",但不是简单编写的(里面有很多PHP)
如果表单无效,有没有办法让它运行一些.show()代码?
如果我需要阅读关于使用javascript验证甚至jquery验证的内容,我可以,但我希望只使用HTML5。我真的很喜欢slideToggle(),它可以让屏幕上同时显示更少的信息(看起来更干净),但我不能让提交按钮不做任何事情,用户会感到困惑,因为他们需要填写的字段(目前)也不在屏幕上。
编辑:这是一把小提琴
JSFiddle
这就是我当前代码的工作方式。(或不工作)
我正在努力做到这一点,如果你的用户部分不可见,也不完整,然后你点击订单部分中的按钮,用户部分就会打开,这样用户就可以看到他们的表单没有正确提交的原因。
根据我对这段代码的理解。
$("#po_submit_button").click(function(){
if (!$(this).valid()) {
var testvalue = "Not Valid Form";
alert(testvalue);
}
});
需要更改为
$("#po_submit_button").click(function(){
if (!$("#po_form")[0].checkValidity()) {
var testvalue = "Not Valid Form";
$("#user_info_div_2").show();
$("#user_info_div_3").show();
}
});
由于您的"this"指的是按钮而不是表单。
您需要在表单元素上使用函数checkValidaty(),该元素是Javascript函数
- 仅当表单有效时关闭弹出窗口
- Magento表单验证,表单提交时没有有效字段
- Ajax 提交表单有时有效,有时直接重定向到操作网址
- Mootools提交表单仅在通过ID选择表单时有效
- 在不重新运行jquery验证的情况下检查表单是否有效
- 尝试检索变量以检查表单是否有效
- 重置按钮在表单提交之前有效,但在提交表单后不起作用
- Javascript进度仅在第二个表单提交后有效
- 仅当电子邮件有效时,才提交表单
- Ajax 表单提交有效,但没有响应
- 如果上传格式有效,请按表单提交按钮
- 使用角度确定表单是否有效
- 如何使用javascript进行html表单验证,只对有效数字进行验证
- 禁用引导程序验证程序提交按钮,直到整个表单有效
- 如何在web ix表单中通过onChange使每个元素有效
- AngularJS 1.3-为什么表单在加载时有效,适用于长度最小的输入
- 当表单输入有效时更改按钮类
- ajax返回有效负载而不是表单数据
- 在使用javascript添加更多行的表单中,只有一行有效
- 相同的类验证,如果其中一个类有效,它会发布表单