简体   繁体   English

如何在不使用JQuery的情况下禁用整个Div目录

[英]How to Disable whole Div Contents without using JQuery

As I have Basic knowledge of JavaScript I want to do operation like following : 因为我具有JavaScript的基本知识,所以我想执行以下操作:

  • By using Two radio button giving two option for Payment : 通过使用两个单选按钮,为付款提供两个选项:

    1. By Cash 用现金
    2. By Check 通过支票
  • If user select the radio button of Cash the Cheque Button should also disable and the Div of Cheque in which the details like cheque no and bank name is should also disable. 如果用户选择“现金”单选按钮,则“支票按钮”也应禁用,其中“支票号码”和“银行名称”之类的详细信息的“支票划分”也应禁用。

  • And visa Versa 和签证Versa

Is there a way to do that without using JQuery? 有没有一种方法可以不使用JQuery? (disable a div and get all content disabled also) (禁用div并禁用所有内容)

Thanks in Advance For Help. 在此先感谢您的帮助。

Try this: 尝试这个:

document.getElementById("myDivId").disabled = true;

To disable all elements inside the div, try this: 要禁用div中的所有元素,请尝试以下操作:

var allChildNodes = document.getElementById("myDivId").getElementsByTagName('*');

for(var i = 0; i < allChildNodes.length; i++)
{
   allChildNodes[i].disabled = true;
}

This code will disable all elements within the given container. 此代码将禁用给定容器内的所有元素。

var container = document.getElementById("cashContainer");
var inputs = document.getElementsByTagName("input").concat(document.getElementsByTagName("select"));
for (var i = 0; i < inputs.length; i++) {
    inputs[i].disabled = true;
}

Applying the same code you can re-enable the other container. 应用相同的代码,您可以重新启用另一个容器。

You may try this 你可以试试这个

HTML 的HTML

<input type="radio" name="cashcheck" value="cash" checked />Cash<br />
<div id="cash">
    <form method="post">
        <input type="text" name="cashTxt1" />
        <input type="text" name="cashTxt2" />
    </form>
</div>

<input type="radio" name="cashcheck" value="check" />Check<br />
<div id="check">
    <form method="post">
        <input type="text" name="checkTxt1" disabled />
        <input type="text" name="checkTxt2" disabled />
    </form>
</div>

JS JS

window.onload=function(){
    var radios = document.getElementsByName('cashcheck');
    radios[0].onchange=toggle;
    radios[1].onchange=toggle;
};

function toggle()
{
    if(this.checked)
    {
        var div = document.getElementById(this.value),
        inputs = div.getElementsByTagName('form')[0].getElementsByTagName('*');
        for( var i=0; i<inputs.length; i++)
        {
            inputs[i].removeAttribute('disabled');
        }

        var op = this.value == 'cash' ? 'check' : 'cash',
        divOp = document.getElementById(op),
        divOpInputs = divOp.getElementsByTagName('form')[0].getElementsByTagName('*');
        for( var i=0; i<divOpInputs.length; i++)
        {
            divOpInputs[i].setAttribute('disabled');
        }
    }
}

DEMO. 演示。

 <fieldset disabled="true"> <div> <input type="text" /> </div> <br> <div> <input type="text" /> </div> <br> <div> <input type="text" /> </div> <br> </fieldset> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM