一、问题是当有多个radio 单选框,我选择了其中一个作为选择条件,把数据带到后台,但是当我把数据返回前台的时候,我所选择的选项并没有被选中,
开始时只是这样写的:
<input type="radio" name="reserveOrder.personalInfo" value="1"/>
<input type="radio" name="reserveOrder.personalInfo" value="0"/>
这样在我页面返回跟开始没有选择是一样的,我其实是要把选中的选项带回来
<input type="radio" name="reserveOrder.personalInfo" ${reserveOrder.personalInfo==1?'checked':''} value="1"/>
<input type="radio" name="reserveOrder.personalInfo" ${reserveOrder.personalInfo==0?'checked':''} value="0"/>
加了一个${reserveOrder.personalInfo==1?'checked':''} 就是在他的值等于1的时候他就是选中状态。
前台赋值不选中:$("#verification").attr('checked', false);
==================================================
今天又做了一个下拉框实现多选的功能 用了一个属性multiple="multiple"
<select multiple="multiple" id="orderStateSequence" name="orderStates" list="reserveStates" listKey="sequence" listValue="name">
<s:iterator value="reserveStates" var="var">
<option value="<s:property value="#var.sequence"/>"
<s:iterator value="orderStates" var="order">
<s:if test="#order==#var.sequence">
selected
</s:if>
</s:iterator>
>
<s:property value="#var.name"/>
</option>
</s:iterator>
</select>
reserveStates是遍历所有状态的值,orderStates是遍历选中的值
后台拿数组去接orderStates
if(orderStates!=null) {
String stateStr = "";
for (String orderState : orderStates) {
if(StringUtils.isEmpty(stateStr)){
stateStr += orderState;
}
else{
stateStr += ","+orderState;
}
}
term=term+" and ro.orderStateSequence in ("+stateStr+")";
}
二、当页面出现select标签的时候
<select class="form-control moneyTypety" name="activeMain.moneyType" >
<option value="1">抵扣金额</option>
<option value="2">定金方式</option>
</select>
然后我们的js里反写回页面
$(".moneyTypety option[value='"+${activeMainView.moneyType}+"']").attr("selected",true);
三、出现select多选的时候(假如我选择了123这三条数据存到数据库中,当我们取出来时去判断里面的值是不是包含123 ,包含就selected
<select class="form-control" name="activeMain.useLimit" id="useLimit" multiple="multiple">
<option value="0" <s:if test="activeMainView.useLimit.indexOf('0') >= 0" >selected </s:if>>不限制</option>
<option value="1" <s:if test="activeMainView.useLimit.indexOf('1') >= 0" >selected </s:if>>线上定制</option>
<option value="2" <s:if test="activeMainView.useLimit.indexOf('2') >= 0" >selected </s:if>>O2O订金</option>
<option value="3" <s:if test="activeMainView.useLimit.indexOf('3') >= 0" >selected </s:if>>O2O全款</option>
<option value="4" <s:if test="activeMainView.useLimit.indexOf('4') >= 0" >selected </s:if>>O2O订金、全款</option>
</select>
四、还有一种是我们查询时,选中多个
<select multiple="multiple" id="orderStateSequence" name="orderStates" list="reserveStates" listKey="sequence" listValue="name">
<s:iterator value="reserveStates" var="var">
<option value="<s:property value="#var.sequence"/>"
<s:iterator value="orderStates" var="order">
<s:if test="#order==#var.sequence">
selected
</s:if>
</s:iterator>
>
<s:property value="#var.name"/>
</option>
</s:iterator>
</select>
private List<ReserveState> reserveStates = null; //预约单状态集合
private String[] orderStates =null; 后台接收的值
if(orderStates!=null) {
String stateStr = "";
for (String orderState : orderStates) {
if(StringUtils.isEmpty(stateStr)){
stateStr += orderState;
}
else{
stateStr += ","+orderState;
}
}
term=term+" and ro.orderStateSequence in ("+stateStr+")";
}
五、页面有多选框反显页面的时候,看是否选中
<tr>
<td nowrap valign="top" align="right" class="td_head">被调查中心:</td>
<td class="frmCreate_kuang_header" style="font-weight: normal;">
<s:iterator value="surveyedCenterUnits" var="var" status="st">
<div style="200px;float:left">
<input type="checkbox" disabled name="surveyedCenter" value="<s:property value="#var.id"/>"
<s:iterator value="questionItem.surveyedDepartments" var="center" status="stCenter">
<s:if test="#center.id==#var.id">
checked
</s:if>
</s:iterator>
><s:property value="#var.name"/>
</div>
</s:iterator>
</td>
</tr>