【问题标题】:Stopping comment submission if fields aren't set如果未设置字段,则停止评论提交
【发布时间】:2013-04-29 07:53:26
【问题描述】:

首先,我设置了 jQuery,因此表单不会提交:http://jsfiddle.net/FztLS/1/

只有设置了字段才不会提交。我想知道是否有人知道脚本中出了什么问题。

我假设 return false; 仅适用于该字段为空的情况。

另外,我如何将类应用于每个空字段,而不仅仅是第一个?

最后,有没有更好的方法来包含单选框验证?

【问题讨论】:

    标签: javascript jquery forms validation


    【解决方案1】:

    将您的 else 子句更新为:

    else {
        $('#respond input, #respond textarea').removeClass('form_error');
        $('#commentform').submit();
    }
    

    这是小提琴:http://jsfiddle.net/FztLS/5/

    【讨论】:

      【解决方案2】:

      “提交”事件只能绑定到表单元素,您正在尝试将其绑定到部分。

      仅供参考,$("section#respond") 是不好的做法。每页不应该有多个具有相同 id 的元素,各种各样的事情都会出错。这样就足够了:$("#respond")

      【讨论】:

      • 是的,后来我意识到我将它绑定到了错误的元素 -.- 并且只有一个 #respond 我只是先添加元素,以便在开发模式下快速引用它。不过谢谢你提醒我!
      【解决方案3】:

      问题出在这里:

      if ($('input[name="rating"]:not(:checked)').val()) {
      

      由于这些是单选按钮,因此将始终未选中,因此您始终会获得一个值并因此返回 false。

      试试这个:

      if($('input[name="rating"]:checked').length === 0) {
      

      这意味着“如果没有选中单选按钮”。

      【讨论】:

        【解决方案4】:

        感谢所有提供帮助的人,但我最终解决了自己的问题:http://jsfiddle.net/yBmdx/20/

        事实证明,从头开始,设置if($validForm) 是最好的方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-26
          • 2017-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多