【问题标题】:Ruby on Rails - Simple form client side validation that response was entered before submitRuby on Rails - 在提交之前输入响应的简单表单客户端验证
【发布时间】:2011-04-14 04:01:09
【问题描述】:

我正在尝试对只有单选按钮的表单进行非常简单的验证,以检查用户在提交页面之前是否选择了问题上的选项。在我看来,除了依赖 jquery 验证或在模型中进行验证之外,有没有一种简单的方法可以做到这一点?

玛丽亚姆

【问题讨论】:

    标签: ruby-on-rails validation forms


    【解决方案1】:

    您可以编写自己的验证函数并在表单提交事件中调用它,该函数检查单选按钮并根据条件返回真或假。

    <form onsubmit="return validateForm(this)">
    
    <input type="radio" name="radio_param" value="val  1" />
    <input type="radio" name="radio_param" value="val  2" />
    <input type="radio" name="radio_param" value="val  3" />
    </form>
    
    <script>
    function validateForm(f){
    
    var radioButtons = f.radio_param;
    var selected = false;
    for(var i = 0;i< radioButtons.length;i++){
     selected = radioButtons[i].checked;
     }
    if(!selected)
     alert("no option selected");
    return selected ;
    }
    </script>
    

    【讨论】:

    • 非常感谢。没有选择任何选项时,有没有办法抑制我的控制器操作?在下面的代码中,我只想在添加值时转发到控制器。现在无论是否选择了一个选项,都会调用控制器。 "posts", :action => "test"}, :onSubmit => "validate_form(this)") 做 %>
    • 你为什么要压制你的行动?是的,您可以这样做,但可能有其他方法可以解决您的问题,所以请提及您的要求,为什么要这样做。
    • 谢谢纳伦。实际上我需要做“return validate_form(this)”...我忘记了“return”。但我认为总的来说我没有在这里遵循最佳实践。我只是在此表单上显示一个带有单选按钮选项的简单问题,如果用户不回答,我想留在该页面上而不是转到下一个问题(这是控制器所做的 - 它转发到下一个问题)。
    • 好的,如果这满足您的问题,请标记为答案。
    【解决方案2】:

    如果你想做客户端验证,你需要 javascript 来处理这个,简单明了。您不必依赖 jQuery,但它确实提供了一些验证细节。

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 2014-02-16
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2020-06-13
      • 2012-08-01
      相关资源
      最近更新 更多