我的表單在會話範圍中運行。表格提交後複選框恢復爲舊值
我在表格中有兩個複選框,並且它們在默認情況下被選中。但是,當我取消選中複選框並提交表單時,複選框將恢復爲選中狀態。
這可能是什麼原因造成的?任何提示修復這將不勝感激。
FYI: 如果我改變我的形式從範圍會議上要求,複選框似乎過於操作的罰款。
<div class="checkbox_item">
<label>
<input id="member" name="member" type="checkbox" checked="checked" value="Y" ></input>
Member
</label>
</div>
<div class="checkbox_item">
<label>
<input id="candidate" name="candidate" type="checkbox" checked="checked" value="Y" ></input>
Candidate
</label>
</div>
在表單提交給servlet之前,我檢查了下面的複選框的值,它總是顯示「Y」。
alert("member: " + $("#member").val() + " candidate: " + $("#candidate").val());
編輯:
我使用Struts 1
方法呈現形式:
public ActionForward renderForm(ActionMapping actionMapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res) throws Exception {
MyForm myForm = (MyForm) form;
myForm.set("member", "Y");
myForm.set("candidate", "Y");
return actionMapping.findForward("success");
}
方法時提交表單被稱爲:
public ActionForward search(
ActionMapping actionMapping, ActionForm form,
HttpServletRequest req,
HttpServletResponse res) throws Exception {
MyForm myForm = (MyForm) form;
List<MyObject> list = service.search(myForm);
myForm.setMyList(list);
return actionMapping.findForward("success");
}
我的JSP形式:
<form name="myForm" action="myLink.do" method="post" onsubmit="return clickSearchButton()">
<label>
<div class="checkbox_item">
<label>
<html:checkbox name="myForm" styleId="member" property="member" value="Y"/>
Member
</label>
</div>
<div class="checkbox_item">
<label>
<html:checkbox name="myForm" styleId="candidate" property="candidate" value="Y"/>
Candidate
</label>
</div>
</label>
<input type="submit" title="Search" />
</form>
你確定你的後臺是不是設置爲'checked'頁面加載時?我看到......'checked =「checked」'在你的html – Vikram
$(「#member」)。val()總是顯示在這種狀態下被選中。我認爲你需要檢查發佈數據,看看是否包含該字段。因爲.val()將始終返回值。如果複選框未選中,則該值不會包含在POST數據中。 –
@Vikram最初,當我進入該頁面時,我將它們設置爲從後端進行檢查。但是一旦在這個頁面上,我就沒有設置任何東西。從我的「alert」聲明中可以看出,該值甚至在到達後端之前似乎總是「Y」。 – Susie