2011-03-27 57 views
0

我有一个脚本,告诉我的按钮去禁用模式时,字符数超过160,但它不工作。任何想法为什么?如何确保禁用按钮时,字符数超过160

这是我的javascript:

 <script> 
    function CountLeft(field,max){ 
     //disable post 
     if (field.value.length > max) 
      $('#workroom_submit').attr("disable","disable"); 
     // enable post 
     if (field.value.length <= max) 
      $('#workroom_submit').attr("disable",""); 
     } 
    </script> 

这是我的html:

<textarea cols="50" rows="3" name="postMsg" onKeyDown="CountLeft(this.form.text,160);" onKeyUp="CountLeft(this.form.text,160);"></textarea> 

    <input type="submit" name="workroom_submit" id="workroom_submit" disable="" value="Post" onclick="updateMsg()"/> 

回答

1

我做了一个摆弄一个例子:http://jsfiddle.net/vKFws/

删除了所有的HTML事件绑定和使用jQuery的事件绑定

<textarea cols="50" rows="3" name='postMsg' id='postMsg'></textarea> 

<input type="submit" id="workroom_submit" value="Post"/> 

$('#postMsg').keyup(function(){ 
    var thetext = $(this).val(); 

    if (thetext.length > 60) { 
     $('#workroom_submit').attr('disabled', 'disabled'); 
    } else { 
     $('#workroom_submit').removeAttr('disabled'); 
    } 
}) 
+0

完美地工作..谢谢! – 2011-03-27 08:00:31

1

jQuery的ID智能处理所有的输入,并返回值通过调用val()方法。

function CountLeft(field,max){ 
     $field = $(field) // convert the field in jQuery object 
     //disable post 
     if ($field.val().length > max) 
      $('#workroom_submit').attr("disabled","disabled"); // the attr name is disabled 
     // enable post 
     if ($field.val().length <= max) 
      $('#workroom_submit').removeAttr("disable"); 
     }