javascript表单剩余的字符数量 - xhtml严格验证的修改要求

时间:2013-03-22 10:15:58

标签: javascript html counter w3c-validation xhtml-1.0-strict

我在我的页面中使用了this javascript code&然后检查w3c验证器。我有2个错误:

  1. 没有属性“onKeyDown”
  2. 没有属性“onKeyUp”
  3. 我不会将我的html声明类型更改为transitional。所以我需要修改脚本。

    脚本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严格验证的脚本并执行相同的操作?

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

    谢谢,BR

1 个答案:

答案 0 :(得分: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的事件处理程序,但我感觉很懒,所以我宣称它超出了范围。 (谷歌“不引人注目的javascript”提供了一些提示。)