Rails 3:如何让用户在表单中选择至少一个复选框?

我有一个表单,用户在提交表单之前必须至少检查一个复选框。 是否有任何插件可以处理这个或可能应用于我的表单的jquery? 不幸的是,我是一个完全jquery的新秀。

jQuery Validation Plugin可以提供此function。 您可以在此处查看如何实现它以获取复选框的演示。

基本上,一旦在页面上加载validation插件的JavaScript文件,就需要初始化要validation的表单的validation器。 执行此操作的JavaScript将类似于:

$('#form1').validate(); 

复选框需要包含在

标记中。 然后,可以通过向复选框的input标记添加validate属性来激活字段集的validate 。 例如:

   

然后在单击表单的提交按钮时触发validation。

上面的所有答案都显示了如何做这个客户端,这可能确实是更可取的。 由于您的问题标题表明您正在使用Rails 3,您还可以validation此服务器端:

 class Example < ActiveRecord::Base ... validates :something_was_checked ... private def something_was_checked if self.checkbox_attribute.blank? self.errors.add(:checkbox_attribute, "You must select at least one option.") end end end 

你可以使用一个简单的jQuery来做到这一点

 $("form").submit(function(){ if($(this).find("input:checked").length == 0){ //No checkbox checked return false; } }); 

当然,你可以做到这一点。

  if($('.myCheckBox :selected').length == 0) alert('Select a check box foo!'); 

您只需使用:selected修饰符查询复选框,并检查长度。