Problems with checkbox required php-js
Problems with checkbox required php-js
当使用支持HTML5的较新的浏览器(例如FireFox 4)时;
并且表单字段具有属性required ='required'
;
并且表单字段为空/空白;
并且单击提交按钮;
浏览器检测到“必填”字段为空,因此不会提交表单;
而是浏览器显示提示,要求用户在字段中键入文本。
现在,不是单个文本字段,而是一组复选框,其中至少应该由用户选择一个。
我如何在这组复选框上使用HTML5的required
属性?
(因为只需要勾选其中一个复选框,所以无法在每个复选框上使用required
属性)
附:我正在使用simple_form,如果有所影响,请告知。
更新
HTML 5 multiple
属性是否有助于解决此问题?有人曾经使用它来做类似于我的问题吗?
更新
看起来这个功能在HTML5规范中不受支持:ISSUE-111: What does input.@required mean for @type = checkbox?
(问题状态:问题已被标记为无偏见关闭。)
这是说明。
更新2
虽然这已经是一个老问题了,但是我想澄清这个问题最初的意图是想要不使用Javascript的情况下进行上述操作,也就是使用HTML5的一种方式来实现。回想起来,我应该让“不使用Javascript”更加明显。
这是一个简单的技巧。这是一个能够通过更改 required
属性利用 html5 验证的 jQuery 代码,只要有一个被选中即可。以下是您的 html 代码(确保您为组中的所有元素添加了 required)。
Option 1 Option 2 Option 3 Option 4 Option 5
以下是 jQuery 脚本,如果任何一个被选中,则禁用进一步的验证检查。使用 name 元素进行选择。
$cbx_group = $("input:checkbox[name='option[]']"); $cbx_group = $("input:checkbox[id^='option-']"); // name is not always helpful ;) $cbx_group.prop('required', true); if($cbx_group.is(":checked")){ $cbx_group.prop('required', false); }
这里的一个小问题:由于您正在使用 html5 验证,请确保在它被验证 i.e. 表单提交之前执行此操作。
// but this might not work as expected $('form').submit(function(){ // code goes here }); // So, better USE THIS INSTEAD: $('button[type="submit"]').on('click', function() { // skipping validation part mentioned above });