struts 2 checkboxlist验证问题

时间:2010-02-24 15:10:11

标签: validation struts2

我有struts 2 checkboxlist如下:

<s:checkboxlist list="listOfOptions" name="someName" />

我想添加验证以确保至少有一个复选框已被选中。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

我使用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;
        }
    }
}

同样适用于单选按钮,如您所见。

答案 1 :(得分:1)

我对提交表单的操作进行了验证。

deliveryTimesInputList在这里是整数列表,其中包含复选框列表中的值。

@Override
public void validate() {

    if(deliveryTimesInputList == null || deliveryTimesInputList.isEmpty()){
        addFieldError("deliveryTimesInputList", "Du må velge minst et leveringstidspunkt for dette postnummeret");
    }

}

答案 2 :(得分:0)

使用以下代码进行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>