即使未单击单选按钮,仍会提交表单[重复]
Posted
技术标签:
【中文标题】即使未单击单选按钮,仍会提交表单[重复]【英文标题】:Form is still submitted even when radio button is not clicked [duplicate] 【发布时间】:2016-05-23 03:53:52 【问题描述】:功能:
用户需要先提交表单,然后才能继续使用该功能。表单由
姓名:
电子邮件:
购买:[ ]是 [ ] 否
[提交]
问题:
我已经创建了上面的表单,启用了电子邮件验证功能,并且还启用了单选按钮作为必填字段。但是,这是此时的功能:
1.) 当用户没有输入任何字段时,将显示一个弹出文本:*请输入所有字段
2.) 当用户只输入姓名而不输入电子邮件时,将显示一个弹出文本:* 请输入有效的电子邮件地址
3.) 在电子邮件字段中,当用户没有输入正确的电子邮件时,将显示一个弹出文本:* 请输入有效的电子邮件地址
但是,此时,在用户输入姓名和电子邮件后,当正确的行为是:*会显示弹出文本:请输入所有字段时,页面导航到下一页 供用户选择单选按钮中的选项。
我没有将提交按钮设置为标签,这是个人偏好,因为我已经为按钮设置了一个函数调用 Submit()
,因此,当我尝试验证所有内容时,我试图找出问题所在字段。
因此,在提交函数调用方法中尝试验证所有字段时出了什么问题?
请帮忙。
代码:
【问题讨论】:
单选字段的验证在哪里? 如果任何验证失败,您的函数如何停止提交? 【参考方案1】:不考虑
$.trim($("#Options").val()) == ""
试试这个
$('#Options:checked').length == 0
或者
!$('#Options:checked').length
你的情况应该是这样的
if( $.trim($("#NameField").val()) == "" || $.trim($("#EmailField").val()) == "" || !$('#Options:checked').length )
console.log("email wrong");
$("#email_wrong").html("* Please fill in all fields.");
$("#email_wrong").fadeIn();
【讨论】:
$('#Options:checked').length 就够了。 @kpsingh... 目标是显示错误(条件必须为真)...您可能的意思是 !$('#Options:checked').length 与 NOT 逻辑运算符让它不那么冗长。不过你提醒了我。谢谢。 非常感谢,成功了!以上是关于即使未单击单选按钮,仍会提交表单[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Rails 5 ajax 表单:单击 Ajax 中的 2 个单选按钮之一提交表单