即使未单击单选按钮,仍会提交表单[重复]

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 个单选按钮之一提交表单

MS Access 表单上的密码保护提交按钮仍会导致按钮提交

使用取消按钮单击提交按钮后阻止表单提交[重复]

Mat单选按钮值在表单提交后没有改变

表单的重复提交,解决方案

提交表单后保持单选按钮处于选中状态