0

我在我的页面中使用了这个 javascript 代码,然后检查了 w3c 验证器。我有 2 个错误,它们是:

  1. 没有属性“onKeyDown”
  2. 没有属性“onKeyUp”

我不会将我的 html 声明类型更改为过渡。所以我需要修改脚本。

脚本 HTML

<textarea id="message" cols="20" rows="5" name="message" onKeyDown="textCounter('message','messagecount',100);" onKeyUp="textCounter('message','messagecount',100);"></textarea>
<span id="charsleft"></span>

脚本 Javascript:

<script>
    function textCounter(textarea, countdown, maxlimit) {
        var textareaid = document.getElementById(textarea);
        if (textareaid.value.length > maxlimit)
          textareaid.value = textareaid.value.substring(0, maxlimit);
        else
          document.getElementById('charsleft').innerHTML = '('+(maxlimit-textareaid.value.length)+' characters available)';
      }
</script>

<script type="text/javascript">
    textCounter('message','messagecount',100);
</script>

由于我对 javascript 一无所知,所以我想问你:应该如何修改才能使我的页面经过 XHTML 1 严格验证?或者我是否必须寻找另一个经过 XHTML 1.0 Strict 验证并执行相同操作的脚本?

注意:暂时脚本是这样工作的:当你在textarea中写入时,两个span之间的部分会<span id="charsleft"></span>出现并实时写入剩余字符数。展示风格的方式对我来说并不重要。例如,第一个值(字符数限制)始终可见。唯一的一点是 W3C 的验证。

谢谢,BR

4

1 回答 1

1

w3c 验证器在给出类似错误时包含“如何修复”提示。

在你的情况下,它说:

如何修复:检查元素和属性的拼写和大小写,(记住 XHTML 都是小写的) ...

也就是说,将属性名称更改为全部小写:

<textarea id="message" cols="20" rows="5" name="message" onkeydown="textCounter('message','messagecount',100);" onkeyup="textCounter('message','messagecount',100);"></textarea>
<span id="charsleft"></span>

最好从脚本块中的 JS 中删除内联事件属性并添加事件处理程序,但我感觉很懒,所以我声明它超出了范围。(谷歌“unobtrusive javascript”以获得一些提示。)

于 2013-03-22T10:21:02.743 回答