Сделать форму ввода только для чтения? - PullRequest
2 голосов
/ 21 июня 2010

У меня есть куча форм, в которых много полей <input type="text">.Теперь пользователь требует, чтобы я предоставил «доступную только для чтения» версию каждой отдельной формы.Я бы перекодировал каждое поле в беспорядок

<xsl:choose>
<xsl:when test="/..../permission = 'E'>
  <input ....>
</xsl:when>
<xsl:otherwise>
  ...
</xsl:otherwise>
</xsl:choose>

, но я надеюсь на что-то более элегантное.Друг предложил

  $(function () {
        <xsl:if test="/.../permission != 'E'">
            $('input').keypress(function() { return false; });
        </xsl:if>
    });

, что делает часть того, что я хочу, но вы все равно можете вставить в поля и вы можете удалить из них.

Ответы [ 3 ]

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

Судя по тому факту, что вы используете XSLT, я бы сказал, что вы выводите в одном из типов документов XHTML, так почему бы просто не сделать созданный вами элемент ввода атрибутом disabled?

<input type="..." disabled="disabled" />

Вы можете сделать это немедленно в XSLT.Если вы используете один и тот же вход повсеместно, просто создайте для него шаблон и используйте <xsl:apply-template .../> внутри теста.

Редактирование после комментария

По-видимому, есть атрибут только для чтения,Глупо:)

<input type="..." readonly="readonly" />
1 голос
/ 21 июня 2010

Я прошел простой маршрут:

       $(function () {
            <xsl:if test=".../permission != 'E'">
                $('input[type="text"').attr('readonly','readonly');
            </xsl:if>
        });

Я не знаю, почему я никогда раньше не слышал об атрибуте «только для чтения».

0 голосов
/ 21 июня 2010

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

Кроме того, если вы изменитеЗначение в прямом javascript вы должны использовать 'readOnly', в то время как html не учитывает регистр, и большинство библиотек позаботится об этом за вас.

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