【发布时间】:2016-06-11 21:58:30
【问题描述】:
我构建了一个包含 4 个单选按钮组的表单,如下所示。它还有 2 个提交按钮。我想防止用户在没有为每组选择一个单选按钮的情况下提交表单(即,需要选择 4 个单选按钮才能提交表单)。
我遵循了关于此问题的帖子的先前建议,但它们似乎不适用于单选按钮组。您对此有何建议?
以下是 HTML:
<form action="http://test/" method="post" accept-charset="utf-8">
<table>
<tbody>
<tr>
<td><label><input type="radio" name="item_6" value="0" class="radio1"> foo</label></td>
<td><label><input type="radio" name="item_7" value="0" class="radio2"> foo</label></td>
<td><label><input type="radio" name="item_8" value="0" class="radio3"> foo</label></td>
<td><label><input type="radio" name="item_9" value="0" class="radio4"> foo</label></td>
</tr>
<tr>
<td><label><input type="radio" name="item_6" value="1" class="radio1"> bar</label></td>
<td><label><input type="radio" name="item_7" value="1" class="radio2"> bar</label></td>
<td><label><input type="radio" name="item_8" value="1" class="radio3"> bar</label></td>
<td><label><input type="radio" name="item_9" value="1" class="radio4"> bar</label></td>
</tr>
<tr>
<td><label><input type="radio" name="item_6" value="2" class="radio1"> baz</label></td>
<td><label><input type="radio" name="item_7" value="2" class="radio2"> baz</label></td>
<td><label><input type="radio" name="item_8" value="2" class="radio3"> baz</label></td>
<td><label><input type="radio" name="item_9" value="2" class="radio4"> baz</label></td>
</tr>
<tr>
<td><label><input type="radio" name="item_6" value="3" class="radio1"> hat</label></td>
<td><label><input type="radio" name="item_7" value="3" class="radio2"> hat</label></td>
<td><label><input type="radio" name="item_8" value="3" class="radio3"> hat</label></td>
<td><label><input type="radio" name="item_9" value="3" class="radio4"> hat</label></td>
</tr>
<tr>
<td><label><input type="radio" name="item_6" value="9" class="radio1"> user</label></td>
<td><label><input type="radio" name="item_7" value="9" class="radio2"> user</label></td>
<td><label><input type="radio" name="item_8" value="9" class="radio3"> user</label></td>
<td><label><input type="radio" name="item_9" value="9" class="radio4"> user</label></td>
</tr>
</tbody>
<tbody>
<tr>
<td><button type="submit" disabled="disabled" name="submit_form" value="save_more">
Save & More</button>
</td>
</tr>
<tr>
<td><button type="submit" disabled="disabled" name="submit_form" value="save_logout">
Save & LOGOUT</button>
</td>
</tr>
</tbody>
</table>
</form>
JS:
<script type="text/javascript">
$(function(){
$("input[type='radio']").change(function(){
$("input[type='submit']").prop("disabled", false);
});
});
</script>
【问题讨论】:
-
你应该订阅表单标签的提交事件,如果它符合你的条件,你应该订阅 event.preventDefault() 来阻止提交。
-
如果你愿意的话,这可以在纯 php 中完成。
-
此 HTML 是通过在视图中循环生成的(我使用的是 CodeIgniter)所以是的,如果您有任何建议,请告诉我
-
您可以使用
isset()和count值的组合。如果其中一个不符合if(whatever <= x_integer){...}的标准(做某事),这是您可以使用的逻辑。可能使用带有键/对值的foreach。
标签: javascript php jquery html forms