如何在使用javascript取消选中复选框时清空文本框

How to empty text boxes when checkbox is unchecked using javascript

本文关键字:复选框 清空 文本 取消 javascript      更新时间:2023-09-26

当HTML中取消选中复选框时,我想使用Javascript清空文本框。这是我的代码:

function sameAddress(){
    var bstreetAddress = document.getElementById("baddress").value;
    var bsuburb = document.getElementById("bsuburb").value;
    var bstate = document.getElementById("bstate").value;
    var bpostcode = document.getElementById("bpostcode").value;
    var dstreetAddress = document.getElementById("daddress");
    var dsuburb = document.getElementById("dsuburb");
    var dstate = document.getElementById("dstate");
    var dpostcode = document.getElementById("dpostcode");
    var checkBoxStatus = document.getElementById("delAddr").checked;
    if (checkBoxStatus = true){
        dstreetAddress.value = bstreetAddress;
        dsuburb.value = bsuburb;
        dstate.value = bstate;
        dpostcode.value = bpostcode;
        }
    if (checkBoxStatus = false){
        dstreetAddress.value = "";
        dsuburb.value = "";
        dstate.value = "";
        dpostcode.value = "";
    }
}
function init(){
    var checkBox = document.getElementById("delAddr");
    checkBox.onchange = sameAddress;
}
window.onload = init;

当我选中该框时,它填充的内容与所需内容相同,但当我取消选中该框后,什么都不会发生!我哪里错了?

您必须检查它是true还是false,而不是赋值true或false。。

if (checkBoxStatus == true){
    dstreetAddress.value = bstreetAddress;
    dsuburb.value = bsuburb;
    dstate.value = bstate;
    dpostcode.value = bpostcode;
    }
if (checkBoxStatus == false){
    dstreetAddress.value = "";
    dsuburb.value = "";
    dstate.value = "";
    dpostcode.value = "";
}

试试这个

if (checkBoxStatus){
        dstreetAddress.value = bstreetAddress;
        dsuburb.value = bsuburb;
        dstate.value = bstate;
        dpostcode.value = bpostcode;
        }
    else {
        dstreetAddress.value = "";
        dsuburb.value = "";
        dstate.value = "";
        dpostcode.value = "";
    }

演示此处

您在此处将其赋值为True或false:

if (checkBoxStatus = true){
    dstreetAddress.value = bstreetAddress;
    dsuburb.value = bsuburb;
    dstate.value = bstate;
    dpostcode.value = bpostcode;
    }
if (checkBoxStatus = false){
    dstreetAddress.value = "";
    dsuburb.value = "";
    dstate.value = "";
    dpostcode.value = "";
}

更改为:

if (checkBoxStatus == true){
    dstreetAddress.value = bstreetAddress;
    dsuburb.value = bsuburb;
    dstate.value = bstate;
    dpostcode.value = bpostcode;
    }
if (checkBoxStatus == false){
    dstreetAddress.value = "";
    dsuburb.value = "";
    dstate.value = "";
    dpostcode.value = "";
}

if (checkBoxStatus == true){ dstreetAddress.value = bstreetAddress; dsuburb.value = bsuburb; dstate.value = bstate; dpostcode.value = bpostcode; }

使用==而不是=

在两个if条件下。

在代码中使用==而不是=,它应该可以使用

只需看看example on this JSFiddle。

您可以使用这种最简单的方法清除所有文本框数据。

我想当你使用'='时会出错,另一种选择是直接检查if子句中的checkbox状态,或者使用'==='

任何一种方式都可以。

例如:

if(checkBoxStatus==true)或if(checkBoxStatus)。。。。后面跟着你的代码。希望它能起作用!!