【问题标题】:avoid textarea rows/cols error?避免 textarea 行/列错误?
【发布时间】:2010-04-15 21:58:00
【问题描述】:

我正在使用几页 validation tools 我遇到的一个问题是他们告诉我 textarea 必须具有 rows 和 cols 属性。如果我在 CSS 中设置它或使用 display:none (并使用它来保存原始文本数据)我可以做些什么来跳过吗?每次我使用它时,似乎唯一的答案是 rows="0" cols="0" 。但是我感觉这不是一个好的解决方案。

【问题讨论】:

    标签: html textarea


    【解决方案1】:

    停止使用textarea。如果您想保存原始数据,请使用 <script> 元素(如果您打算使用 JS 访问它)或 input 类型的 hidden (如果您打算将其作为表单数据提交)。

    如果您不打算让用户输入数据,请不要使用“让用户输入数据”的语义。

    【讨论】:

    • 嗯。这听起来像是一个更好的解决方案(我不知道为什么 ppl 过去告诉我 textarea)。我如何找到 JS 数据?我一直在使用 var data = $(this).parent('.parent').find('.valuestr').eq(0).val();这很容易。如果我把它放在 JS 中,我无法想象一个同样简单的方法
    • <script type="text/javascript">var global_data = 'your data'; function func() { var data = global_data; }</script>
    • binaryLV:那不一样。我的相对于我点击的 div。 global_data 是一个大数据。
    • 然后是usefulname = usefulname || {}; usefulname.id_of_element = { ... };,然后是usefulname[this.id]
    • 听起来不错。我会接受作为解决方案。但是为什么我不想再次使用 textarea 呢?考虑到我的网站在没有 css 的情况下看起来就像地狱(按照规范),这个解决方案似乎不像将它存储在 textarea 中那么简单。 +1
    【解决方案2】:

    我认为,这是标准解决方案。不过,最好给出更大的值,以便禁用 CSS 的浏览器可以正确显示它们。对于不可见的数据持有者,您可以使用<div> 而不是<textarea>

    【讨论】:

      【解决方案3】:

      大卫的答案最终是正确的。不过,关于必需属性的快速说明:许多属性需要存在,但不需要具有值 - 所以<textarea rows="" cols=""></textarea> 是完全有效的。

      在语义上,将此视为显式指定行或列,这与 <textarea></textarea> 不同,后者只是完全忽略了属性。

      【讨论】:

      • 嗯。它有效的 XHTML 1.0,但 DTD 说:<!ENTITY % Number "CDATA"> <!-- one or more digits -->。所以它仍然是错误的,它只是(我假设)XML DTD 没有足够的表达力来告诉验证器该要求。所以它仍然是一个一致性错误,而不是一个有效性错误。我会将此作为不使用 XHTML 的另一个原因。
      • 有趣,David - 我承认当我第一次发现无值属性的有效性时,我有点惊讶。不过,我没有意识到它只是 XHTML 的一部分 - 感谢您的提醒!
      猜你喜欢
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多