在Jquery中设置属性不起作用

时间:2010-04-28 15:29:50

标签: jquery

我有以下功能限制您可以输入文本区域的字符数。

如果文本长度高于文本限制,请在提交按钮上设置disabled="disabled"的属性,但它没有设置,我的功能代码如下:< / p>

function limitChars(textid, limit, infodiv) {
        var text = $('#'+textid).val(); 
        var textlength = text.length;
        if(textlength > limit) {
            $('#' + infodiv).html('You cannot write more then '+limit+' characters!');
            $('input#submit').attr('disabled', 'disabled');

        } else {
            $('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.');

        }
    }

具体是$('input#submit').attr('disabled', 'disabled');位不起作用。

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

使用$('input#submit').attr('disabled', true);。 如果您需要再次启用它,请使用

.removeAttr('disabled');

答案 1 :(得分:0)

你看到你的信息消息'你不能写更多.....'?

尝试将选择器更改为“:input#submit”。确保提交按钮的ID是“提交”并记住,IE区分大小写。

答案 2 :(得分:0)

如果按元素ID引用,只需使用$(“#submit”)即可,我认为

答案 3 :(得分:0)

你的功能有效。你是如何约束文本的?你应该使用keyup:

$('#textarea').keyup(function() {
limitChars('textarea', 4, 'info');
});
limitChars('textarea', 4, 'info'); // run this initially as well

答案 4 :(得分:0)

我发布了a demo,似乎可以使用此代码:

$(document).ready(function(){
 $('#test').keyup(function(){
  limitChars( this.id, 20, 'info')
 })
})

function limitChars(textid, limit, infodiv) {
 var text = $('#'+textid).val(); 
 var textlength = text.length;
 if(textlength > limit) {
  $('#' + infodiv).html('You cannot write more then '+limit+' characters!');
  $('input#submit').attr('disabled', 'disabled');
 } else {
  $('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.');
  $('input#submit').removeAttr('disabled');
 }
}