我正在使用javaScript为表单上的自动完成函数,并在我的HTML文件中遇到了复选框的问题。基本想法是,用户应该能够在表单fieldset中填写其运输名称和邮政编码,然后如果他们签出"计费信息相同?",则将称为填充计费的JS函数具有相同运输值的计费名称和邮政编码的现场集。复选框能够完成此操作,但我无法取消选中的方式清除计费信息。本质上,我无法取消选中我的复选框。我的代码如下:
function billingFunction(){
var billName=document.getElementById("billingName");
var shipName=document.getElementById("shippingName");
var billZip=document.getElementById("billingZip");
var shipZip=document.getElementById("shippingZip");
var same=document.getElementById("same");
if (same.checked=true){
billName.value=shipName.value;
billZip.value=shipZip.value;
}
else{
billName.value="";
billZip.value="";
}
}
<form>
<fieldset>
<legend>Shipping Information</legend>
<label for ="shippingName">Name:</label>
<input type = "text" name = "shipName" id = "shippingName" required><br/>
<label for = "shippingZip">Zip code:</label>
<input type = "text" name = "shipZip" id = "shippingZip" pattern = "[0-9]{5}" required><br/>
</fieldset>
<input type="checkbox" id="same" name="same" onchange= "billingFunction()"/>
<label for = "same">Is the Billing Information the Same?</label>
<fieldset>
<legend>Billing Information</legend>
<label for ="billingName">Name:</label>
<input type = "text" name = "billName" id = "billingName" required><br/>
<label for = "billingZip">Zip code:</label>
<input type = "text" name = "billZip" id = "billingZip" pattern = "[0-9]{5}" required><br/>
</fieldset>
<input type = "submit" value = "Verify"/>
</form>
您的if语句比较没有使用正确的平等检查,而是将检查属性分配为true。从:
更改您的代码if (same.checked=true){ //This does assignment
billName.value=shipName.value;
billZip.value=shipZip.value;
}
else{
billName.value="";
billZip.value="";
}
:
if (same.checked === true){ //This does equality check
billName.value=shipName.value;
billZip.value=shipZip.value;
}
else{
billName.value="";
billZip.value="";
}
您将值分配给相同。修改:if(same.checked == true(或简单地if(same.checked(