2011-10-06

JAVA 中的核選方塊 checkbox 取值問題

操作:在選單中建立一個核選方塊 checkbox
<input name="checkboxresult" type="checkbox" value="right">
若勾選,則在 JSP 後端利用
checkboxf=request.getParameter("checkboxfinish");
取得該值「right」。並在後面以
if(checkboxf.equals(“right”))){
    expstate="未完成";
}else{
    expstate="完成";
}

給定勾選與否的結果

 

問題:
發生三種狀況
1. 以上面的寫法,可以正確得到「未完成」的結果,也就是勾選。
但若不勾選,則 if 此行會發生錯誤

2. else 段落若改為
if(checkboxf.equals(“right”))){
expstate="未完成";
}else if(checkboxf!=(“right”)){
expstate="完成";
}

則奇怪的事會發生,兩個 if 竟然先後都成立,expstate 先為「未完成」,又被改為「完成」

3. if 段落若改為
if(checkboxf!=(“right”))){
expstate="完成";
}else{
expstate="未完成";
}
else 無法發生作用

處理:
最後完成的寫法為
if(checkboxf!=(null)){
    expstate="未完成";
}else{
    expstate="完成";
}
在核選方塊不勾選時,其值為「null」。
不去獲得核選方塊的 value 值,改由判斷是否勾選,則整段 if 的判斷才能正確!

沒有留言: