複数のフォームがあり、それぞれに異なる条件に基づいてレンダリングされたコマンド ボタンが少なくとも 1 つあります<h:selectBooleanCheckbox>
。そして、そのデータテーブルの外にコマンドボタンを配置して、ユーザーがチェックボックスを選択して行を選択し、フォームを送信できるようにしました。このタスクを正常に実行できます。
しかし <h:selectBooleanCheckbox>
、この特定のフォーム内のコマンド ボタンだけがクリックされたときに必須にする必要があります。しかし、次の方法を実行すると、まったく機能しません。ユーザーがデータテーブル内のチェックボックスを選択せずにフォームを送信するときに、チェックボックスを必須にするにはどうすればよいですか?
< h:form prependId="false" rendered="#{bean.somecondition}">
<h:dataTable id="userdata" value="#{bean.list}" var="obj">
<h:column>
<h:selectBooleanCheckbox required="#{not empty param[commandbutton.clientId]}"
requiredMessage="Please select atleast one check box to proceed."
value="#{bean.checked[obj.Id]}" />
</h:column>
</h:dataTable>
<h:commandButton value="submit" binding="#{commandbutton}"
action="#{bean.someaction}">
</h:commandButton>
</h:form>
Javascriptで動作させることができます
$(function(){
$('#formId').submit(function(e){
var checkboxes = $("input[type='checkbox']");
if(!checkboxes.is(":checked")){
$('#listcheck').show(); // This is a div contained the validation message.
e.preventDefault();
}
})
});
でもJSFでやりたい