使用JavaScript复选框事件切换html的可见性
如果商品需要帐单邮寄地址,我已经拼凑了这些javascript功能,以将购物车地址表单中的收货地址字段隐藏起来。 该函数切换html包装的可见性..
function getItem(id) {
var itm = false;
if(document.getElementById)
itm = document.getElementById(id);
else if(document.all)
itm = document.all[id];
else if(document.layers)
itm = document.layers[id];
return itm;
}
function showHideItem(id) {
itm = getItem(id);
if(!itm)
return false;
if(itm.style.display == 'none')
itm.style.display = '';
else
itm.style.display = 'none';
return false;
}
它工作正常,如果加载一个新的地址表单,我遇到的问题是,如果他们提交表单勾选复选框,并验证失败,表单重新加载复选框打勾,但不幸的是这些字段是可见的,所以现在删除复选框隐藏场!
<tr><td class="white"><strong>Delivery Address</strong></td>
<td>Tick <input Type="checkbox" id="deliver_same" value="yes" onClick="showHideItem('delAddress')" />
If delivery address is billing address</td></tr>
<tbody id="delAddress">
<tr><td>Address line 1</td><td><input class="text" name="saddr1" value="" /></td></tr>
...
<tr><td>Post /Zip Code</td><td><input class="text" name="spostalcode" value="" /></td></tr>
</tbody>
我想我需要的是一个onload事件,如果复选框在表单加载时被勾选,它会隐藏这些字段。 刚写完之后,我可能会有一个去,但没有信心。 请不要提及jquery,它不是这个项目的一个选项。
function checkDeliverSame() {
var deliverSame = getItem('deliver_same');
var deliveryAddress = getItem('delAddress');
if (deliverSame.checked) {
deliveryAddress.style.display = 'none';
} else {
deliveryAddress.style.display = 'block';
}
}
checkDeliverSame(); /* This runs the function on page load */
将该函数与getItem
函数一起放在</body>
标记的正上方,并在复选框输入onclick中调用它。 您还需要将id#delAddress
元素从tbody
更改为div
以便getItem函数可以在其上工作。
这是一个小提琴:http://jsfiddle.net/JuNhN/1/
我修改了Josh的函数,使其更通用,更喜欢document.getElementById(),因为它更适合itm.style.display。 我不完全相信checkDeliverSame(); 在结束标记后不久,直接调用html。
function checkHiddenRows(id) {
deliverSame = getItem('deliver_same');
itm = document.getElementById(id);
if (deliverSame.checked == true) {
itm.style.display = 'none';
} // else { alert('Checkbox not checked') } // Verify the checkbox state
}
<script>checkHiddenRows('deliveryAddress');</script>
表格现在按预期工作。
链接地址: http://www.djcxy.com/p/56055.html上一篇: Toggle visibility of html using javascript checkbox event
下一篇: Html form Radio button set to checked by Default Based on PHP variable