2014-02-10 84 views
0

我正在嘗試在列表中包含複選框。使用該代碼我包含複選框成功。但我無法通過使用該複選框來獲取多個值。如果選中了三個checboxes ,我只能從該列表中獲得一個值。請幫助我找出爲什麼我無法同時獲得多個值的原因。當複選框被選中時如何獲取多個值

<div class="profile-input" style="height:100px; width:200px; overflow:auto;"> 

       <s:iterator value="cityList"> 
        <input type="checkbox" name="cityNumber[]" id="cityNo" value="<s:property value="cityId"/>" onchange="getcountrycode(false);" multiple="multiple"/><s:property value="cityName"/><br/> 
        </s:iterator> 

        </div> 

回答

1

首先,如果你有一個集合等候在行動,你需要點的指數每個元素使用IteratorStatus;
還包括城市名稱的標籤,生成univoque的ID,並刪除multiple="multiple",這並不意味着在任何複選框:

<s:iterator value="cityList" stat="ctr"> 
    <input type = "checkbox" 
      name = "cityNumber[<s:property value="%{#ctr.index}"/>]" 
      value = "<s:property value="cityId"/>" 
      id = "cityNo<s:property value="%{#ctr.index}"/>" 
    /> 

    <label for = "cityNo<s:property value="%{#ctr.index}"/>"> 
     <s:property value="cityName"/> 
    </label> 

    <br/> 
</s:iterator> 

然後,它會更好地使用Struts標籤UI <s:checkbox />

<s:iterator value="cityList" stat="ctr"> 
    <s:checkbox name = "cityNumber[%{#ctr.index}]" 
      fieldValue = "cityId" 
       label = "cityName" 
    /> 
    <br/> 
</s:iterator> 

甚至通過使用<s:checkboxlist/>like explained here刪除迭代器。

0

使用jQuery地圖/獲取功能:

$('#save_value').click(function() { 
    var sel = $('input[type=checkbox]:checked').map(function (_, el) { 
     return $(el).val(); 
    }).get(); 

    alert(sel); 
}); 

觀看演示在這裏.. http://jsfiddle.net/J3LNt/2/

相關問題