Отключить текстовое поле с помощью CSS - PullRequest
54 голосов
/ 17 марта 2010

Как отключить текстовое поле в CSS? В настоящее время у нас есть текстовое поле в нашем представлении, которое может быть включено / отключено в зависимости от свойства в модели. У нас есть вид asp.net MVC; в зависимости от значения свойства Model нам нужно либо визуализировать текстовое поле, либо текстовое поле только для чтения. мы думали сделать это, применяя CSS к элементу управления представлением. Кто-то делал это раньше?

Ответы [ 8 ]

54 голосов
/ 27 марта 2012

вы можете отключить через css:

pointer-events: none; 

Хотя не везде работает.

53 голосов
/ 17 марта 2010

CSS не может отключить текстовое поле, однако вы можете отключить отображение или видимость.

display: none;
visibility: hidden;

Или вы также можете установить атрибут HTML:

disabled="disabled"
52 голосов
/ 17 марта 2010

Вы не можете ничего отключить с помощью CSS, это функциональная проблема. CSS предназначен для дизайна. Вы можете создать впечатление, что текстовое поле отключено, установив на него размытые цвета.

Чтобы фактически отключить элемент, вы должны использовать отключенный логический атрибут:

<input type="text" name="lname" disabled />

Демо: http://jsfiddle.net/p6rja/

Или, если хотите, вы можете установить это через JavaScript:

document.forms['formName']['inputName'].disabled = true;​​​​

Демо: http://jsfiddle.net/655Su/

Имейте в виду, что отключенные входы не будут передавать свои значения при отправке данных обратно на сервер. Если вы хотите сохранить данные, но не можете напрямую их редактировать, вам может быть интересно установить вместо этого значение readonly.

// Similar to <input value="Read-only" readonly>
document.forms['formName']['inputName'].readOnly = true;

Демо: http://jsfiddle.net/655Su/1/

Это не меняет пользовательский интерфейс элемента, поэтому вам нужно сделать это самостоятельно:

input[readonly] { 
    background: #CCC; 
    color: #333; 
    border: 1px solid #666 
}

Вы также можете выбрать любой отключенный элемент:

input[disabled] { /* styles */ }
6 голосов
/ 17 марта 2010

Вы не можете отключить текстовое поле в CSS. Отключение этого не является презентационной задачей, вам придется сделать это в разметке HTML, используя атрибут disabled.

Вы можете собрать что-то вместе, поместив текстовое поле под абсолютно позиционированным прозрачным элементом с z-index ... Но это просто глупо, плюс вам все равно понадобится второй элемент HTML.

Вы можете, однако, стиль отключить текстовые поля (если вы это имели в виду) в CSS, используя

input[disabled] { ... }

от IE7 и выше и во всех других основных браузерах.

3 голосов
/ 19 января 2011

Если продолжить ответ Пекки, у меня в некоторых текстовых полях был стиль "style1". Вы можете создать «style1 [disabled]», чтобы стилизовать только отключенные текстовые поля, используя стиль «style1»:

.style1[disabled] { ... }

Работает нормально на IE8.

3 голосов
/ 28 июня 2010

** просто скопируйте и вставьте этот код, и вы увидите, что текстовое поле отключено **

<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title> 

<style>.container{float:left;width:200px;height:25px;position:relative;}
       .container input{float:left;width:200px;height:25px;}
       .overlay{display:block;width:208px;position:absolute;top:0px;left:0px;height:32px;} 
</style>
 </head>
<body>
      <div class="container">
       <input type="text" value="rvi.tom@gmail.com" />
       <div class="overlay">
        </div>
       </div> 
</body>
</html>
1 голос
/ 13 марта 2013

Просто попробуйте это.

<asp:TextBox ID="tb" onkeypress="javascript:return false;" width="50px" runat="server"></asp:TextBox>

Это не позволит вводить символы внутри TextBox.

0 голосов
/ 22 мая 2019

другой способ - сделать его доступным только для чтения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...