#asp.net #textbox #readonly #disabled-control
Вопрос:
В чем разница между включенными и только для чтения свойствами элемента управления asp:TextBox?
Ответ №1:
Если элемент управления является disabled
, он не может быть отредактирован, и его содержимое исключается при отправке формы.
Если элемент управления является readonly
таковым, его нельзя редактировать, но его содержимое (если таковое имеется) по-прежнему включено в отправку.
Комментарии:
1. Это не обязательно так … в зависимости от версии .NET, если значение только для чтения будет изменено, оно вернется к исходному значению при обратной передаче. Вам нужно сделать что-то вроде TextBox1.Attributes. Добавьте(«только для чтения», «верно»); чтобы избежать этого.
2. Это должно быть TextBox1.Атрибуты. Добавьте(«только для чтения», «только для чтения»), но да, если вы хотите, чтобы состояние представления работало, вы не можете использовать только для чтения или включено.
3. Если элемент управления доступен только для чтения, его нельзя редактировать, но его содержимое (если таковое имеется) может быть включено в отправку. Смотрите: w3.org/TR/html4/interact/forms.html#h-17.12 «Элементы, доступные только для чтения, могут быть успешными». Это означает, что браузер может решить не возвращать значение поля ввода только для чтения, и это было бы совершенно правильно.
4. @Энтони: Я не так читал эту спецификацию. Будет ли элемент управления успешным или нет, зависит от многих факторов, одним из которых является то, отключен ли элемент управления. (См. Раздел непосредственно под тем, что вы процитировали). Для них сказать, что «элементы, доступные только для чтения, должны быть успешными», было бы неправильно, потому что, например, это может быть поле выбора только для чтения без выбора.
5. Правда. Но есть одна вещь, которую я хотел бы добавить. Если элемент управления текстовым полем находится внутри «Панели обновления», значение поля «Отключено» будет доступно при отправке формы.
Ответ №2:
Другое поведение заключается в том , что readonly = 'true'
элементы управления будут запускать такие события, как click
, Enabled = False
но элементы управления не будут.
Ответ №3:
Только чтение не будет «выделять» текстовое поле серым цветом и все равно отправит значение при обратной передаче.
Ответ №4:
Подумайте об этом с точки зрения браузера. Только для чтения браузер отправит пару переменная/значение. Для инвалидов этого не произойдет.
Запустите это, а затем посмотрите на URL-адрес после нажатия кнопки отправить:
<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>
Ответ №5:
Только чтение позволит пользователю копировать текст из него. Инвалиды не будут.
Комментарии:
1. возможно, в 2008, 2013 годах вы сможете скопировать значения из них обоих
Ответ №6:
Текстовое поле только для чтения в Asp.net
<asp:TextBox ID="t" runat="server" Style="margin-left: 20px; margin-top: 24px;"
Width="335px" Height="41px" ReadOnly="true"></asp:TextBox>
Ответ №7:
У меня есть дочерняя форма aspx, которая выполняет поиск адресов на стороне сервера. Значения с дочерней страницы aspx затем передаются обратно в родительские текстовые поля через клиентскую часть javascript.
Хотя вы можете видеть, что текстовые поля были изменены, ни только для чтения, ни включение не позволят возвращать значения обратно в родительскую форму.