我有struts 2 checkboxlist如下:
<s:checkboxlist list="listOfOptions" name="someName" />
我想添加验证以确保至少有一个复选框已被选中。有什么想法吗?
谢谢
我用JS来做到这一点。
<sx:submit
id="button_submit"
name="button_submit"
onclick="return validateNotEmptyCheckbox();" />
和JS:
function validateNotEmptyCheckbox() {
var checkboxes = document.getElementsByTagName('input');
for (i = 0; i < arguments.length; i++) {
var fieldName = arguments[i];
var atLeastOne = false;
for (j = 0; j < checkboxes.length; j++) {
if ((checkboxes[j].type == "checkbox" || checkboxes[j].type == "radio")
&& checkboxes[j].name == fieldName
&& checkboxes[j].checked == true)
atLeastOne = true;
}
if (atLeastOne == false) {
alert("Choose one!!!");
return false;
}
}
}
您也可以看到单选按钮。
我对提交表单的操作进行了验证。
deliveryTimesInputList在这里是整数列表,其中包含checkboxlist中的值。
@Override
public void validate() {
if(deliveryTimesInputList == null || deliveryTimesInputList.isEmpty()){
addFieldError("deliveryTimesInputList", "Du må velge minst et leveringstidspunkt for dette postnummeret");
}
}
使用以下代码进行struts2 xml验证。复选框List的值存储为string.Hence,您可以使用requiredstring。
<field name="someName">
<field-validator type="requiredstring">
<message>You need to select at least one option</message>
</field-validator>
</field>