【问题标题】:Form is still submitted even when radio button is not clicked [duplicate]即使未单击单选按钮,仍会提交表单[重复]
【发布时间】:2016-05-23 03:53:52
【问题描述】:

功能:

用户需要先提交表单,然后才能继续使用该功能。表单由

姓名:

电子邮件:

购买:[ ]是 [ ] 否

[提交]

问题:

我已经创建了上面的表单,启用了电子邮件验证功能,并且还启用了单选按钮作为必填字段。但是,这是此时的功能:

1.) 当用户没有输入任何字段时,将显示一个弹出文本:*请输入所有字段

2.) 当用户只输入姓名而不输入电子邮件时,将显示一个弹出文本:* 请输入有效的电子邮件地址

3.) 在电子邮件字段中,当用户没有输入正确的电子邮件时,将显示一个弹出文本:* 请输入有效的电子邮件地址

但是,此时,在用户输入姓名和电子邮件后,当正确的行为是:*会显示弹出文本:请输入所有字段时,页面导航到下一页 供用户选择单选按钮中的选项。

我没有将提交按钮设置为标签,这是个人偏好,因为我已经为按钮设置了一个函数调用 Submit(),因此,当我尝试验证所有内容时,我试图找出问题所在字段。

因此,在提交函数调用方法中尝试验证所有字段时出了什么问题?

请帮忙。

代码:

【问题讨论】:

  • 单选字段的验证在哪里?
  • 如果任何验证失败,您的函数如何停止提交?

标签: javascript jquery forms radio-button


【解决方案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 逻辑运算符让它不那么冗长。不过你提醒了我。谢谢。
  • 非常感谢,成功了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
相关资源
最近更新 更多