代码之家  ›  专栏  ›  技术社区  ›  Paul Tomblin

是否将输入窗体设为只读?

  •  2
  • Paul Tomblin  · 技术社区  · 14 年前

    我有很多表格 <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 回复  |  直到 14 年前
        1
  •  3
  •   Denis 'Alpheus' Cahuk    14 年前

    从您使用XSLT的事实来看,我认为您是在一个XHTML doctype中输出的,那么为什么不让您创建的输入元素具有disabled属性呢?

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

    您可以在XSLT中立即执行此操作。如果你到处都在使用相同的输入,只需为它创建一个模板并使用 <xsl:apply-template .../> 测试内部。

    评论后编辑

    显然还有一个只读属性。愚蠢的:)

    <input type="..." readonly="readonly" />
    
        2
  •  1
  •   Paul Tomblin    14 年前

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

    我不知道为什么我以前从没听说过“readonly”属性。

        3
  •  0
  •   kennebec    14 年前

    只读字段和禁用字段之间存在差异-

    另外,如果在纯javascript中更改值,则必须使用“readOnly”,而html不区分大小写,大多数库都会为您处理它。