当复选框未选中时,删除隐藏字段中的值

Deleting value in hiddenfield when checkbox is unchecked jquery

本文关键字:隐藏 字段 删除 复选框      更新时间:2023-09-26

我是jquery和javascript的新手。但是我做了这个函数。当一个复选框被选中时,它的值被设置在一个隐藏字段中。函数如下:

<script>
    $('#checkDk').on('change', function () {
        $('#MainContent_hiddenTargetDk').val($(this).val());
        console.log($("#MainContent_hiddenTargetDk").val());
    });
</script>

我不知道这是不是最好的方法,但它有效。问题是,当复选框未选中时,值不会从隐藏字段中删除。我一直在四处寻找,发现了这个

var value = this.checked ? this.value : "";

你能用这个来检查它是否被选中了吗?如果是,我怎么把它融入到我的函数中?

这里是复选框html.

<input id="checkDk" type="checkbox" value="208" onselect="getvalue()" autocomplete="off">

应该可以:

<script>
    $('#checkDk').on('change', function () {
       $('#MainContent_hiddenTargetDk').val( $(this).prop("checked") ? $(this).val(): "");
        console.log($("#MainContent_hiddenTargetDk").val());
    });
</script>
$('#checkDk').on('change', function () {
    if(this.checked){
      var hidden = $('<input />').attr('type', 'hidden')
                                 .addClass('chooseNameHere')
                                 .val($(this).val());
      $('#yourFormId').append(hidden);
    }else{
      $('#yourFormId').find('input[name=chooseNameHere]').remove();
    }
});

$("#your_checkbox").prop("checked")应返回truefalse,指示复选框是否选中。

试试这个代替val()

Try

<script>
$('#checkDk').on('change', function () {
    if (this.checked) { 
      $('#MainContent_hiddenTargetDk').val($(this).val());
      console.log($("#MainContent_hiddenTargetDk").val());
    } else { $('#MainContent_hiddenTargetDk').val(''); }
});
</script>