function changeSelect (boxId, inputId) {
var element = document.getElementById( boxId );
var elementHidden = document.getElementById( boxId + 'Hidden' );
var inputElement = document.getElementById( inputId );
if (element.checked == true) {
inputElement.disabled = false;
elementHidden.disabled = true;
} else {
inputElement.disabled = true;
element.value = "";
elementHidden.disabled = false;
}
}
<spring:bind path="eqTeamTokenDTO.teamatesList[${gridRow.index}].selected">
<input id="check${item.index}"
type="checkbox"
name="${status.expression}"
οnclick="changeSelect ('check${item.index}', 'select${item.index}')"
class="subCheckbox"
value="Y"
<c:if test="${'Y' == status.value}">checked</c:if>
>
<input id="check${item.index}Hidden"
type="hidden "
name="${status.expression}"
value=""
disabled="disabled" class="subCheckboxHidden"/>
</spring:bind>
上次有个同事问起,在将form设为session scope之后,为什么checkbox tick了之后submit,validate出错后 return back,在去掉之前所tick的checkbox,此时return back时很意外的出现了之前已去掉的checkbox勾勾 。
如上所述,加多一个hidden,在没有check的时候enable就没有问题了。