2014-02-20 40 views
0

我試圖更改我的複選框的值,當複選框不是複選框時,我希望複選框的值等於'N'選擇。然後,如果選中該複選框,則相同複選框的值將更改爲「Y」。這個值將被保存到我的數據庫中。此刻,當我保存該複選框時,選中該值時保存爲「開」,如果保存到我的數據庫時沒有選中該複選框,我的數據庫字段將保持空白。請參閱下面的代碼。使用JavaScript更改JSP中複選框的值

<script language="javascript"> 

    function validate() { 
     if (document.getElementById('box1').checked) { 
     alert("checked"); 
     document.getElementById('box1').value == 'Y' 

     } else { 
     alert("Checkbox not checked!") 
     document.getElementById('box1').value == 'N' 
     } 
    }   

</script> 

........................

<td><input type="checkbox" name="chkbox3" id="box1" onclick="validate()"> Letter</td> 

任何幫助將是非常appreciated.Thanks。

+0

你能分享你用來保存到數據庫的代碼嗎?問題可能在於此。 – JLewkovich

+0

謝謝,但它不是數據庫。它的功能,我已經設法改變值爲Y時選擇,但不能讓N保存時,它不選擇。只有勾選複選框纔會設置值。 –

回答

1

基本上,我認爲這是一個問題可以通過「郵政形式」來解決。

單擊元素複選框時,將觸發函數「validate()」。 然後它改變複選框的值。

當這個輸入元素由形式包裝是這樣的:然後在你的手柄

<form method="post" action="/your/url/to/handle/data" name="postForm"> 
    <input type="checkbox" name="chkbox3" id="box1" onclick="validate()"> Letter 

    <input type="submit" value="submit form" /> <!-- here is the trigger input --> 
</form> 

<form method="post" action="/your/url/to/handle/data" name="postForm"> 
    <input type="checkbox" name="chkbox3" id="box1" onclick="validate()"> Letter 
</form> 

你可以添加一個「輸入提交」元素來觸發此表來發表頁面,您可以在此表單中收到鍵值。

P.S表單元素中的複選框'key'是「name」而不是「id」。 在這個演示中,您收到的數據如下: {chkbox3:'Y'}

就是這樣,希望它能解決您的問題。 :)

+0

感謝您的幫助@ Tyler.z.yang。我確實有一個由表單包裝的複選框並提交按鈕來觸發該帖子。但不是發佈值'Y'或'N',而是發佈'ON'或空白字段。我會嘗試使用name屬性而不是id,那可能就是這樣。 –

+0

@ConorCaslin我只是在搜索引擎中查看它,看來你使用js框架extjs4?在此框架中,複選框的默認值爲'on',並解決檢查的問題。例如: {xtype:'checkboxfield',fieldLabel:'CheckBox',name:'checkbox',inputValue:'Y',uncheckedValue:'N'} :) –

+0

感謝您的研究。仍然無法讓它工作。我一直在嘗試幾種不同的方式。一個是有兩個同名的複選框,一個隱藏,一個不是。隱藏的複選框會自動選中,儘管用戶看不到它。如果選中可見覆選框,則隱藏的複選框將被取消選中,反之亦然。可見覆選框設置爲value =「Y」,隱藏複選框值=「N」。雖然不能讓它工作。 :( –