2010-02-24 76 views
1

我有支柱2的CheckBoxList如下:支柱2 CheckBoxList的確認問題

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

我想補充驗證,以確保該複選框中的至少一個已被檢查。有什麼想法嗎?

謝謝

回答

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

我對提交表單的操作進行了驗證。

deliveryTimesInputList這裏是從checkboxlist中取值的整數列表。

@Override 
public void validate() { 

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

} 
0

使用以下代碼進行struts2 xml驗證。複選框List的值存儲爲字符串。因此,您可以使用requiredstring。

<field name="someName"> 
    <field-validator type="requiredstring"> 
    <message>You need to select at least one option</message> 
    </field-validator> 
    </field>