admin管理员组文章数量:1293755
As I have Basic knowledge of JavaScript I want to do operation like following :
By using Two radio button giving two option for Payment :
- By Cash
- 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
Is there a way to do that without using JQuery? (disable a div and get all content disabled also)
Thanks in Advance For Help.
As I have Basic knowledge of JavaScript I want to do operation like following :
By using Two radio button giving two option for Payment :
- By Cash
- 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
Is there a way to do that without using JQuery? (disable a div and get all content disabled also)
Thanks in Advance For Help.
Share Improve this question asked Mar 20, 2013 at 12:20 user2190762user2190762 8- 4 If you can do something with jQuery, you can also do it with vanilla JavaScript because (all together now) jQuery is JavaScript. – JJJ Commented Mar 20, 2013 at 12:22
- 1 possible duplicate of: stackoverflow./questions/639815/… – Ezhil V Commented Mar 20, 2013 at 12:22
- 2 @javapirate:He has used the JQuery to Solve. Not Duplication – user2190762 Commented Mar 20, 2013 at 12:24
- 1 iterate all the form elements inside the div tag and then disable them. Try this and let us know the result – Ezhil V Commented Mar 20, 2013 at 12:24
- 1 @javapirate:I think It will Work – user2190762 Commented Mar 20, 2013 at 12:31
4 Answers
Reset to default 5Try this:
document.getElementById("myDivId").disabled = true;
To disable all elements inside the div, try this:
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
<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
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>
本文标签: javascriptHow to Disable whole Div Contents without using JQueryStack Overflow
版权声明:本文标题:javascript - How to Disable whole Div Contents without using JQuery - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741565340a2385689.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论