asp:TextBox ReadOnly=true or Enabled=false?
Asked Answered
A

7

64

What's the difference between the Enabled and the ReadOnly-properties of an asp:TextBox control?

Anemophilous answered 6/10, 2008 at 13:38 Comment(0)
R
90

If a control is disabled it cannot be edited and its content is excluded when the form is submitted.

If a control is readonly it cannot be edited, but its content (if any) is still included with the submission.

Renal answered 6/10, 2008 at 13:39 Comment(5)
This isn't necessarily true ... depending on the version of .NET, if the readonly value is changed, it will revert to the original value on the postback. You need to do something like TextBox1.Attributes.Add("readonly", "true"); to avoid this.Infrasonic
That should be TextBox1.Attributes.Add("readonly", "readonly"), but yes if you want the viewstate to work then you can't use either of ReadOnly or Enabled.Anemophilous
If a control is readonly it cannot be edited, but its content (if any) may be included with the submission. See: w3.org/TR/html4/interact/forms.html#h-17.12 "Read-only elements may be successful." This means that a browser might decide not to post back the value of a readonly input box and that would be perfectly correct.Cini
@Anthony: That's not how I read that specification. Whether or not a control is successful depends on many factors, one of which is whether the control is disabled. (See the section immediately below what you cited). For them to say that "Read-only elements must be successful" would be wrong, because for example it could be a read-only select box with no selection made.Renal
True. But there is one thing I would like to add. If the textbox control is inside an "Update panel", the value for the field which is "Disabled" will be available on form submission.Kostival
Z
11

Another behaviour is that readonly = 'true' controls will fire events like click, buton Enabled = False controls will not.

Zelda answered 17/1, 2012 at 22:1 Comment(0)
L
6

Readonly will not "grayout" the textbox and will still submit the value on a postback.

Langston answered 6/10, 2008 at 13:39 Comment(0)
K
4

Think about it from the browser's point of view. For readonly the browser will send in a variable/value pair. For disabled, it won't.

Run this, then look at the URL after you hit submit:

<html>
<form action=foo.html method=get>
<input name=dis type=text disabled value="dis">
<input name=read type=text readonly value="read">
<input name=normal type=text value="normal">
<input type=submit>
</form>
</html>
Kriegspiel answered 6/10, 2008 at 13:43 Comment(0)
M
3

Readonly will allow the user to copy text from it. Disabled will not.

Midkiff answered 8/10, 2008 at 12:59 Comment(1)
maybe on 2008, on 2013 you can copy the values from both of themStaceystaci
P
3

Readonly textbox in Asp.net

<asp:TextBox ID="t" runat="server" Style="margin-left: 20px; margin-top: 24px;"
Width="335px" Height="41px" ReadOnly="true"></asp:TextBox>
Paternity answered 15/5, 2015 at 8:41 Comment(0)
S
1

I have a child aspx form that does an address lookup server side. The values from the child aspx page are then passed back to the parent textboxes via javascript client side.

Although you can see the textboxes have been changed neither ReadOnly or Enabled would allow the values to be posted back in the parent form.

Sophistic answered 9/12, 2010 at 18:9 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.