如何从复选框元素中获取默认值?

时间:2010-08-02 18:38:48

标签: javascript jquery html

以下是我的代码:

<INPUT TYPE="checkbox" NAME="cb" value="1">

提交表单后,如果选中cb==1元素,则会收到cb

如果未选中cb==0元素,我想获取cb。如何实现呢?

BTW:无法更改接收页面,例如:

if(cb==null)cb=0;// no no no..

我希望在网络前端客户端实现它。

我试过这样:

<INPUT TYPE="hidden" NAME="cb" value="0"> <!--add this line-->
<INPUT TYPE="checkbox" NAME="cb" value="1">

如果未选中cb,则可以覆盖<INPUT TYPE="hidden" NAME="cb" value="0">,否则我可以cb==0

但我觉得这个解决方案并不好。

任何想法? thx~:)


感谢wowo_999发表评论:

“我只是忽略复选框期间的值,并根据是否选中它来设置隐藏字段的值。建议的方式是在查询字符串中发送cb 2x的值选中该复选框。“ - wowo_999


在数据库中,我将cb字段默认值设置为“0”,但是当我插入或更新时,如果它为null,则显示:“java.sql.SQLException:Column'cb'不能为null”,所以,我需要cb == 0,而不是null。(我不能忽略sql查询字符串中的cb字段,因为我可能需要将cb更新为“0”。)

3 个答案:

答案 0 :(得分:1)

您可以使用javascript检查是否取消选中,并在提交时将值更改为0并将其设置为已选中。

答案 1 :(得分:1)

如果您要使用复选框的值来设置隐藏输入的值,您也可以使用javascript来设置复选框的值。例如,使用jQuery:

$("input[type=checkbox]").change(function() {
    $(this).attr("value", $(this).attr("checked") ? 1 : 0);
});

或者,让脚本也设置页面加载的值:

$(function() {
    function updateCheckbox() {
        $(this).attr("value", $(this).attr("checked") ? 1 : 0);
    }
    // Run whenever checkbox is ticked or unticked
    $("input[type=checkbox]").change(updateCheckbox);
    // Run on page load
    updateCheckbox();
});

现在你也可以使用常规的HTML标记,没有任何隐藏的输入和没有值属性:

<input type="checkbox" name="cb" />

或者默认选中它:

<input type="checkbox" name="cb" checked />

答案 2 :(得分:0)

您不能在数据库中默认为“0”?