2015-11-16 126 views
1

有一個在我的jsp頁面複選框複選框值,如果未選中

<input type="checkbox" name="myCheck" id="myCheck"> 

我提交表單,並在服務器端,我想用撿回來

request.getParameter("myCheck"); 

如果我選中了該複選框,它將作爲true來請求,否則它不在請求對象中。

我的要求是,如果我沒有檢查它,它也應該是假的。 有什麼建議嗎?

UPDATE

我使用GET方法是的,它是存在於我提交表單。

+0

糾正你的代碼的名稱應與該ID我的意思是字母C和小C ;你能否提供更多的表單標籤信息(更多代碼)以及你提交的方式(按鈕提交標籤) – shareef

+1

你是否圍繞這個複選框包裝了一個表單?如果是這樣,你使用哪種方法(Post或Get)? – reporter

+1

@shareef同步名稱和標識符是不是nessecary。 – reporter

回答

2

accepted answer in stackoverflow

您如何知道如果檢查

澄清..

例如:

<input type="hidden" name="checkboxNamesList" value="nameCheckbox1" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox2" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox3" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox4" /> 

然後,你可以得到複選框來自請求的NamesList(它將是一個String []),因此您將擁有所有複選框參數名稱。如果你得到一個複選框名稱的參數和值爲null,這意味着複選框沒有被檢查

好吧,因爲未檢查的複選框不存在於請求中,你不知道JSP中其複選框沒有但是你需要知道它,才能在數據文件中寫入類似checkbox_name1 = unchecked的東西。

那麼,該怎麼做?首先,您需要知道請求中存在哪些複選框(取消選中或不選中)。對於這一點,你可以用下面的代碼,並得到所有的複選框的名字出現在JSP:

String[] checkboxNamesList= request.getParameterValues("checkboxNamesList"); 

然後,讓尋找選中checboxes:

for (int i = 0; i < checkboxNamesList.length; i++) { 

    String myCheckBoxValue = request.getParameterValues(checkboxNamesList[i]); 

    // if null, it means checkbox is not in request, so unchecked 
    if (myCheckBoxValue == null) 
     writer.append(checkboxNamesList[i] + "=unchecked"); 

    // if is there, it means checkbox checked 
    else 
     writer.append(checkboxNamesList[i] + "=checked"); 

} 
1

我不明白爲什麼值不在請求對象中。我認爲一個可能的錯誤是缺失的值屬性。

你的第二個問題: 在後端,你必須先定義一個默認值,然後檢查空:

public boolean myCheckBox = false; 
if (request.getParameter("myCheck") != null) {myCheckBox = true} 
相關問題