使用JavaScript更改JSP中复选框的值

使用JavaScript更改JSP中复选框的值,javascript,html,jsp,checkbox,Javascript,Html,Jsp,Checkbox,我正在尝试更改我的复选框的值,我希望该复选框的值等于“N”,但该复选框未选中。然后,如果选中该复选框,则该复选框的值将更改为“Y”。然后,该值将保存到我的数据库中。此时,当我保存该复选框时,选中该复选框时,该值将保存为“开”,如果在保存到数据库时未选中该复选框,则“我的数据库”字段将保持空白。请参阅下面的代码 <script language="javascript"> function validate() { if (document.getElementB

我正在尝试更改我的复选框的值,我希望该复选框的值等于“N”,但该复选框未选中。然后,如果选中该复选框,则该复选框的值将更改为“Y”。然后,该值将保存到我的数据库中。此时,当我保存该复选框时,选中该复选框时,该值将保存为“开”,如果在保存到数据库时未选中该复选框,则“我的数据库”字段将保持空白。请参阅下面的代码

<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>

函数验证(){
if(document.getElementById('box1')。选中){
警报(“已检查”);
document.getElementById('box1')。值=='Y'
}否则{
警报(“未选中复选框!”)
document.getElementById('box1')。值='N'
}
}        

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

任何帮助都将不胜感激。谢谢。

基本上,我认为这是一个可以通过“post表单”解决的问题

单击元素复选框时,将触发函数“validate()”。 然后更改复选框的值

当此输入元素被如下形式包装时:

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

书信
您可以添加“input submit”元素以触发此表单发布:

<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>

书信
然后在句柄页面中,您可以接收此表单中的键值

另外,表单元素中复选框的键是“name”而不是“id”。 在本演示中,您收到的数据如下: {chkbox3:'Y'}


仅此而已,希望它能解决您的问题。:)

你能分享你用来保存到数据库的代码吗?问题可能就在那里。谢谢,但不是数据库。它的功能,我已经设法改变值为Y时,选择,但不能得到N保存时,它没有选择。仅当勾选复选框时才设置值。谢谢帮助@Tyler.z.yang。我确实用表单和提交按钮包装了复选框以触发帖子。但它不是发布值“Y”或“N”,而是发布“ON”或空白字段。我将尝试使用name属性而不是id属性,可能就是这样。@ConorCaslin我只是在搜索引擎中查看它,似乎您使用的是js框架extjs4?在此框架中,复选框的默认值为“开”,这解决了选中的问题。e、 g:{xtype:'checkboxfield',fieldLabel:'CheckBox',name:'CheckBox',inputValue:'Y',uncheckedValue:'N'}:)感谢您的研究。还是无法让它工作。我自己也在尝试一些不同的方法。一个是有两个同名的复选框,一个是隐藏的,一个不是。“隐藏”复选框将自动选中,尽管用户无法看到它。如果选中“可见”复选框,则会取消选中“隐藏”复选框,反之亦然。可见复选框设置为value=“Y”,隐藏复选框value=“N”。但也不能让它工作(对不起,我错了。这是HTML标记复选框默认值为“开”。javascript代码中有一些问题。“document.getElementById('box1')==Y”=>“document.getElementById('box1')=Y”和else语句。:)这是我的JSFIDLE:正常工作了。谢谢你的帮助。其中一个问题是我用了两个相等(=)而不是(=),但我添加了另一个复选框,就像我在上一篇评论中所说的那样,并把它搞乱了。最后我写了一封**信**