下面是统计留言板中已输入字符和剩余可输入字符的字数的函数。但是不加<form>标签可用,一旦加上<form>标签就不可以用了,出错,达不到想要的结果。这是为什么啊?什么会出现这种情况?该怎么改啊
这是代码如下:
<script>
var total=10;
var sy;function show(obj)

if (test.value.length > total) {
test.value = test.value.substring(0,total);
alert("留言不能超过 10 个字!");
}
else {


document.getElementById('text1').innerHTML="你已经输入<font color='red'>"+obj.value.length+"</font>个字";
sy=total-obj.value.length;document.getElementById('text2').innerHTML="还剩余<font color='red'>"+sy+"</font>个字";}}
</script>
<form><input type="text" onkeyup="show(this)" id="test" name="test" value="" />
<div id="text1"></div>
<div id="text2"></div></form>
大侠,你运行一下就知道了,去掉<form>标签就行。

解决方案 »

  1.   

    因为你取控件对象的方法不标准<script> 
    var total=10; 
    var sy; function show(obj) 

    var test = document.getElementById('test');
    if (test.value.length > total) { 
    test.value = test.value.substring(0,total); 
    alert("留言不能超过 10 个字!"); 

    else { document.getElementById('text1').innerHTML="你已经输入 <font color='red'>"+obj.value.length+" </font>个字"; 
    sy=total-obj.value.length; document.getElementById('text2').innerHTML="还剩余 <font color='red'>"+sy+" </font>个字";} } 
    </script> 
    <form> 
    <input type="text" onkeyup="show(this)" id="test" name="test" value="" /> 
    <div id="text1"> </div> 
    <div id="text2"> </div>
    </form> 
      

  2.   

    既然传了this,直接用obj即可<script> 
    var total=10; 
    var sy; function show(obj) 

      if (document.forms[0].test.value.length > total) { 
        document.forms[0].test.value = document.forms[0].test.value.substring(0,total); 
        alert("留言不能超过 10 个字!"); 
      }
      else {
        document.getElementById('text1').innerHTML="你已经输入 <font color='red'>"+obj.value.length+" </font>个字"; 
        sy=total-obj.value.length; 
        document.getElementById('text2').innerHTML="还剩余 <font color='red'>"+sy+" </font>个字";
      }

    </script> 
    <form> <input type="text" onkeyup="show(this)" id="test" name="test" value="" /> 
    <div id="text1"> </div> 
    <div id="text2"> </div> </form> 
      

  3.   

    楼上,我不是听人说IE下面可以不用document.getElementById直接id.的嘛?
    怎么反倒FF可以直接点,IE却不行了啊,难道我记反了啊?
      

  4.   


    <html>
    <head><title>tt</title></head>
    <script> 
    var total=10; 
    var sy; function show(obj) 

    if (obj.value.length > total) { 
    obj.value = obj.value.substring(0,total); 
    alert("留言不能超过 10 个字!"); 

    else { 
      document.getElementById('text1').innerHTML="你已经输入 <font color='red'>"+obj.value.length+" </font>个字"; 
      sy=total-obj.value.length; 
      document.getElementById('text2').innerHTML="还剩余 <font color='red'>"+sy+" </font>个字";} } 
    </script> 
    <form> <input type="text" onkeyup="show(this)" id="test" name="test" value="" /> 
    <div id="text1"> </div> 
    <div id="text2"> </div> </form> </html>