?
Solved

Javascript dropdownlist hide/unhide textbox

Posted on 2008-10-28
17
Medium Priority
?
1,680 Views
Last Modified: 2012-05-05
How do i control a textbox from a dropdownlist value. I need to make a text box visible when a particular vlaue is selected in the dropdownlist box. I basically want to avoid a post back to control this.

0
Comment
Question by:byte1
  • 6
  • 5
  • 4
15 Comments
 
LVL 9

Expert Comment

by:gdupadhyay
ID: 22824986
(I hope you know, how to read the selected value of DDL by javascripts.)

You can use

txtbox.style.display = 'none';
or

txtbox.style.display = '';

Depened on selected value of DDL.

Please let me know if you have any question

 
0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 22825002
A simple sample:
<form id="form1" runat="server">
<script language="javascript" type="text/javascript">
    function Verify()
    {
        var element = document.getElementById('ddlValues');
        if (element.value == 'Value2')
            document.getElementById('txtTest').style.visibility = 'hidden';
        else
            document.getElementById('txtTest').style.visibility = 'visible';
    }
</script>
<div>
    <asp:DropDownList ID="ddlValues" runat="server" onchange="Verify();">
        <asp:ListItem Text="Value 1" Value="Value1"></asp:ListItem>
        <asp:ListItem Text="Value 2" Value="Value2"></asp:ListItem>
        <asp:ListItem Text="Value 3" Value="Value3"></asp:ListItem>
        <asp:ListItem Text="Value 4" Value="Value4"></asp:ListItem>
    </asp:DropDownList>
    <asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
</div>
</form>

Open in new window

0
 
LVL 9

Expert Comment

by:gdupadhyay
ID: 22825036
If you don't know how to read the value, Please see below function:


function displayTextBox()
{
    var txtbox = document.getElementById('" + txtbox.UniqueID + @"');
    var ddList = document.getElementById('" + ddlist.UniqueID + @"').value;
     if(ddList == 'E')
     {
         lblEmp.style.display = '';
         txt.style.display = '';
      }
      else
      {
          txtbox.style.display = 'none';
      }
 }


Call This Function  onchange="displayOffer();" of DDL.


Good Luck.

Let me know if you have any question.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:byte1
ID: 22825125
jorge I tried your solution, but get this error

0.
Message: Object required
Line: 111
Char: 9
Code: 0


0
 
LVL 9

Expert Comment

by:gdupadhyay
ID: 22825314
That error due to, your code not able to find out the controls. Did you try my code? My code will run 100%. I have tested on my local system.

0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 22825366
Check your html source code... does the controls names are the same as the code I put?
0
 

Author Comment

by:byte1
ID: 22825542
gdupadhyay, What would be the UniqueID ? I still get the same error. i have also removed the 'lblEmp' line
0
 

Author Comment

by:byte1
ID: 22825609
jorge, yes .i have copied my exact code.

 function VerifyCoreProcessor()
    {
        var element = document.getElementById('ddlCoreProcessor');
        if (element.value == 'Other')
            document.getElementById('txtCoreProcessor').style.visibility = 'hidden';
        else
            document.getElementById('txtCoreProcessor').style.visibility = 'visible';
    }

<asp:dropdownlist id="ddlCoreProcessor" runat="server" Width="128px" onchange="VerifyCoreProcessor();">
..........................
..........................

However I get a tag on "onchange" which is :"Could not find any attribute 'onchange' of element _
'dropdownlist'
0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 22825641
There is no problem with that tag... is warning, the IDE do not recognize at design time that property of the control

I meant with "source code" when you run your application and see the source code inside the browser
0
 

Author Comment

by:byte1
ID: 22825769
i checked this time, it seems to be prefixing a tax to my control names. like

<TD><select name="_ctl14:ddlCoreProcessor" id="_ctl14_ddlCoreProcessor"
0
 
LVL 9

Expert Comment

by:gdupadhyay
ID: 22825996
UniqueID is used to read the ID of server controls. My function is read the selected value of DDL and compair the selected value. If the selected value is 'E', display the controls other wise don't display.  

Can you please send me the code and .aspx file. It will help me to give you exact code.
0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 22826179
Check with this:
<form id="form1" runat="server">
<script language="javascript" type="text/javascript">
    function Verify()
    {
        var element = document.getElementById('_ctl14:ddlCoreProcessor');
        if (element.value == 'Value2')
            document.getElementById('_ctl14:txtTest').style.visibility = 'hidden';
        else
            document.getElementById('_ctl14:txtTest').style.visibility = 'visible';
    }
</script>
<div>
    <asp:DropDownList ID="ddlValues" runat="server" onchange="Verify();">
        <asp:ListItem Text="Value 1" Value="Value1"></asp:ListItem>
        <asp:ListItem Text="Value 2" Value="Value2"></asp:ListItem>
        <asp:ListItem Text="Value 3" Value="Value3"></asp:ListItem>
        <asp:ListItem Text="Value 4" Value="Value4"></asp:ListItem>
    </asp:DropDownList>
    <asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
</div>
</form>

Open in new window

0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 22826183
The only thing that we must check is the id of your textbox in the source code of the browser
0
 

Author Comment

by:byte1
ID: 22826235
Text box id :
</select><input name="_ctl14:txtCoreProcessor" type="text" id="_ctl14_txtCoreProcessor" /></TD>

do i need to use a HTML textbox ?

0
 
LVL 15

Accepted Solution

by:
jorge_toriz earned 2000 total points
ID: 22827419
Test with this
<script language="javascript" type="text/javascript">
    function Verify()
    {
        var element = document.getElementById('_ctl14:ddlCoreProcessor');
        if (element.value == 'Value2')
            document.getElementById('_ctl14_txtCoreProcessor').style.visibility = 'hidden';
        else
            document.getElementById('_ctl14_txtCoreProcessor').style.visibility = 'visible';
    }
</script>
<div>
    <asp:DropDownList ID="ddlValues" runat="server" onchange="Verify();">
        <asp:ListItem Text="Value 1" Value="Value1"></asp:ListItem>
        <asp:ListItem Text="Value 2" Value="Value2"></asp:ListItem>
        <asp:ListItem Text="Value 3" Value="Value3"></asp:ListItem>
        <asp:ListItem Text="Value 4" Value="Value4"></asp:ListItem>
    </asp:DropDownList>
    <asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
</div>

Open in new window

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
The Relationships Diagram is a good way to get an overall view of what a database is keeping track of. It is also where relationships are defined. A relationship specifies how two tables connect to each other. As you build tables in Microsoft Ac…
Suggested Courses

616 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question