2017-03-08 104 views
0

我使用下面的函数,以一个纯粹的单选按钮组调查表上进行一些简单的验证:jQuery的提交麻烦

$('form').submit(function(e) { 
    e.preventDefault(); 
    if($('input[type="radio"]:not(:checked)').val()) { 
     this.reportValidity(); 
     return; 
    } 
    this.submit(); 
}); 

我从这个fiddle开始并稍加修改它。

验证时,单选按钮非常好,根据需要...但由于某些原因的形式将不再提交一次无线电组有一个选择,不像小提琴版本这工作。我觉得我错过了一些非常简单的事情,一旦有人回答这个问题,我会面对掌心。

在此先感谢。

+0

你的JS工作正常,据我可以告诉(在你提供的小提琴测试)。问题很可能在其他地方。 – stybl

+0

@Sty the fiddle不是没有工作的代码。对于这种困惑感到抱歉。该代码仅适用于确保无线电组至少有一个选定的代码。 – daredevil1234

+0

应该澄清一点,我测试了你在这篇文章中提供的代码,将它粘贴在小提琴中。 – stybl

回答

3

在你修改后的脚本,你检查任何未选中的单选按钮,这样的检查总是退出 - 只有一个组中可以进行检查,所以你一定至少有一个是不。它不会刷新合法性检查,因为该组没有问题,但它仍然会退出提交功能,而不会进行实际的submit()调用。

+0

嗯,这是有道理的。让我把代码搞乱一下,然后回复你 – daredevil1234

+0

玩得开心! :-) –

+0

我已经验证了这是它不提交的原因。我一直无法修改我的代码以正确提交,但我在前一段时间确实验证了此答案的正确性。 – daredevil1234