-
December 15th, 2008, 06:41 PM
#1
[RESOLVED] Enable/Disable asp.net radio by javascript
Hi frends !
I must confess this is my second day to use any javy script code and it confuses me a bit as it seems a bit similar to c# but is totally different in lots of points.
For example I'm missing declaration of input values in methods. My actual problem is to find the needed access to an asp.net radiobutton control using clientside code
I did for a RadioButton where the ID is "radio1"
Code:
var tbx = document.getElementById("radio1");
tbx.disabled = true;
This disabled /enabled the button itself depending on if I set disabled to true or false but didn't disable the text of the control only the button.
Using Postback and Enabled Property of this asp.net Radiobutton I can easily enabe /disable the whole control within its text but not using this code in javascript. So how to get access to the whole control ?
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 12:41 AM
#2
Re: Enable/Disable asp.net radio by javascript
You would have to also disable the textbox by getting its ID.
Code:
document.getElementById('RADIO_ID').disabled = true;
document.getElementById('TEXTBOX_ID').disabled = true;
If the post was helpful...Rate it! Remember to use [code] or [php] tags.
-
December 16th, 2008, 02:47 AM
#3
Re: Enable/Disable asp.net radio by javascript
you may use the control's ClientID property when in client-side..
document.getElementById('<%=myTextBox.ClientID%>').disabled = true;
hth
Busy
-
December 16th, 2008, 04:04 AM
#4
Re: Enable/Disable asp.net radio by javascript
Originally Posted by PeejAvery
You would have to also disable the textbox by getting its ID.
Code:
document.getElementById('RADIO_ID').disabled = true;
document.getElementById('TEXTBOX_ID').disabled = true;
Yes, Ok, but my problem is which ID has the Text of an asp.net Radiobutton ? The whole control has an ID "Radio1"... and so on. So whats the ID of its Text ? Is the Text a child of the radio Button ? The design is a list the user can fill and depending on some checkboxes some Radiobuttons needs to be enabled / disabled. And all this should be done on clientside.
Or do I need to have the Radiobuttons Textfields empty and adding additional Labels and changing TextColor there ? Would be really a complicated solution for that
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 04:27 AM
#5
Re: Enable/Disable asp.net radio by javascript
Originally Posted by Thread1
you may use the control's ClientID property when in client-side..
document.getElementById('<%=myTextBox.ClientID%>').disabled = true;
hth
Sorry I'm too much new I dont understand what you are talking about. Lets assume This are my Radios
Code:
<scriptlanguage="javascript">
function ChangeRadioState(which,disable){
var tbx = document.getElementById(which);
tbx.disabled = disable;
}
</script>
<body>
<formid="form1"runat="server">
<div>
<asp:RadioButtonID="Radio1"runat="server"Text="Hallo"/><br/>
<asp:RadioButtonID="Radio2"runat="server"Text="World"/><br/>
<asp:RadioButtonID="Radio3"runat="server"Text="I'm here"/><br/>
<asp:CheckBoxID="CheckBox1"runat="server"Text="Disable Radio1"onclick="ChangeRadioState('Radio1',true)"/><br/>
<asp:CheckBoxID="CheckBox2"runat="server"Text="Disable Radio1"onclick="ChangeRadioState('Radio1',false)"/></div>
</form>
</body>
And when I'm disabling "Radio1" then also the Text which is "Hallo" in this example should look disabled. Just if I'm disabling it using Postback and setting the property of asp.net Control "Radio1" to Enabled="False"
What is 'myTextBox' in your code in this case ?
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 05:38 AM
#6
Re: Enable/Disable asp.net radio by javascript
the ID of the element in your aspx file is not necessarily the ID in javascript, but rather the ID of your server control. ASP.NET assigns its own ID for every element in the page, and this ID which is stored in ClientID property is the one used when the page is rendered to the client (javascript). you can verify this by looking at the "View Source" output of your browser.
"myTextBox" is an ID of a textbox control which is similar to "Radio1" in your example, if you want to disable "Radio1" in javascript it could be
Code:
document.getElementById("<%=Radion1.ClientID%>").disabled = true;
hth
Busy
-
December 16th, 2008, 05:41 AM
#7
Re: Enable/Disable asp.net radio by javascript
Hi friends !
Using Debugger and Intellisense I found out that nextSibling seems to be the Text of the control So I did
Code:
<scriptlanguage="javascript">
function ChangeRadioState(which,disable){
var tbx = document.getElementById(which);
tbx.disabled = disable;
tbx.nextSibling.disabled = disable;
}
</script>
and this seems to work. My question now is only, as I'm not familar with the asp.net controls design. Is this the standard way to do it or does this only work because of a 'lucky coincidental ' and will maybe not work if others access my page ? Or could it lead to this ugly errors which occur on lots of pages where my browser all the time asks if he should go to debug mode. Because I dont want to create lots of bugs on my page
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 06:03 AM
#8
Re: Enable/Disable asp.net radio by javascript
and this seems to work. My question now is only, as I'm not familar with the asp.net controls design. Is this the standard way to do it or does this only work because of a 'lucky coincidental ' and will maybe not work if others access my page ? Or could it lead to this ugly errors which occur on lots of pages where my browser all the time asks if he should go to debug mode. Because I dont want to create lots of bugs on my page
i think you should test it for different browser (i.e., firefox, opera, etc) though for i had encounter such thing that just because of an extra whitespace the "nextSibling" was affected.
Busy
-
December 16th, 2008, 02:10 PM
#9
Re: Enable/Disable asp.net radio by javascript
to avoid any problems I'd recommend using el.disabled="disabled" variant in js. This one works in all browsers.
Wanna install linux on a vacuum cleaner. Could anyone tell me which distro sucks better?
I had a nightmare last night. I was dreaming that I’m 64-bit and my blanket is 32-bit and I couldn’t cover myself with it, so I’ve spent the whole night freezing. And in the morning I find that my blanket just had fallen off the bed. =S (from: bash.org.ru)
//always looking for job opportunities in AU/NZ/US/CA/Europe :P
willCodeForFood(Arrays.asList("Java","PHP","C++","bash","Assembler","XML","XHTML","CSS","JS","PL/SQL"));
USE [code] TAGS! Read this FAQ if you are new here. If this post was helpful, please rate it!
-
December 16th, 2008, 02:28 PM
#10
Re: Enable/Disable asp.net radio by javascript
Originally Posted by Xeel
to avoid any problems I'd recommend using el.disabled="disabled" variant in js. This one works in all browsers.
And what is el in your code ? ( which I sined in red )
As you see I have a lot of radio buttons to enable / disable so I want to access them all with one method only using different input values. Look at the example and code I gave. I didn't want to explicitly write
Code:
Radio1.disabled= true;
Radio2.disabled = true;
....
Radio27.disabled = true;
The full page is a relatively long questionary and depending on some answers further questions should be enabled or if they are not relevant anymore because of a given result in a former checkbox they should be disabled. For example if someone has answered he is a man its unnecessary to ask him if he ever has been pregnant and if yes how often. This is only an example, the questionary has a totally technical background ) But its simple a sort of multichoice.
I would hate it to have a postback after each click a user does to any checkbox or radiobutton.
Last edited by JonnyPoet; December 16th, 2008 at 02:30 PM.
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 04:29 PM
#11
Re: Enable/Disable asp.net radio by javascript
el is the common reference to an HTML element. In this case, it would be the object returned by document.getElementById().
If the post was helpful...Rate it! Remember to use [code] or [php] tags.
-
December 16th, 2008, 05:16 PM
#12
Re: Enable/Disable asp.net radio by javascript
Originally Posted by Xeel
to avoid any problems I'd recommend using el.disabled="disabled" variant in js. This one works in all browsers.
If I'm using this 'string' version how do I enable the button again ? I tried el.disabled="enabled" but this didn't work, while true and false works in my IE7 Browser. You say using sting works in every browser so I would use this but how to correctly set it to enabled ( using an empty string like "" works but is this the correct method. Sorry I'm a totally newbie in javascript and some of this javascript syntax is really against all what I have learned in C# about type and typesave coding. So as I can see el in my Intellisence it obviously doesn't need to be declared. So I changed my code as followed
Code:
function ChangeGroupState(gpCount, gpElement, disable) {
for (i = 1; i <= gpCount; i++) {
el = document.getElementById(gpElement + i);
if (el !=null){
if (disable) {
el.disabled = "disabled";
el.checked = false;
el.nextSibling.disabled = "disabled";
} else {
el.disabled = "";
el.nextSibling.disabled = "";
}
}
}
}
The radios have names like 'roof1' to 'roof4' or 'pos1' to 'pos6' and so on. Therefore gpElement is the basename like 'roof' or 'pos' and this way I can enable or disable a full bunch of radiobuttons. The last question regarding this is now only: Will this work in every browser or at least most of the browsers ?
Jonny Poet
To be Alive is depending on the willingsness to help others and also to permit others to help you. So lets be alive. !
Using Code Tags makes the difference: Code is easier to read, so its easier to help. Do it like this: [CODE] Put Your Code here [/code]
If anyone felt he has got help, show it in rating the post.
Also dont forget to set a post which is fully answered to 'resolved'. For more details look to FAQ's about Forum Usage. BTW I'm using Framework 3.5 and you ?
My latest articles :
Creating a Dockable Panel-Controlmanager Using C#, Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7
-
December 16th, 2008, 06:02 PM
#13
Re: Enable/Disable asp.net radio by javascript
It should work in all browsers. However, it is a HTML value and not an XHTML value.
Of course, there is no reason why the boolean shouldn't either. The boolean is the XHTML value.
If the post was helpful...Rate it! Remember to use [code] or [php] tags.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|