2012-03-16 10 views
1

私はすべてのブラウザで完璧に動作するこのコードを持っていますが、IEでは動作しません。 理由が不明です。誰も何か考えているのですか? はここでテキストエリアにMAXLENGTH属性をサポートしていませんJsfiddle demoTextarea maxlength IEの問題

<textarea name="detail" class="words"></textarea> 

$(words).keyup(function() { 

      var maxWords = 24; 
      var a = words.val().split(' '); 
      var word=0, i=0; 
      for(; (i<a.length) && (word<maxWords); ++i) 
      if(a[i].length) ++word; 
      maxL = a.splice(0,i).join(' '); 

      var wordsLimit = words.val().split(" ").length; 
      var charLimit = $.trim($(".words")); 
      maxLength = maxL.replace(/\s/g, ''); 

      if(wordsLimit > 25) { 
       $(this).next('span').remove(); 
       $(this).after('<span class="error">*Max word limit 25</span>'); 
       $(this).attr('maxlength',maxL.length) 
      } else { 
       $(this).removeAttr('maxlength') 
      } 
     }); 
+0

あなたはどのバージョンのIEを記述できますか?どのバージョンをテストしましたか?他のブラウザでテストしたことがありますか?(あなたのIE版と同じ年齢ですか?) – Joseph

+1

それはうまくいかないことを定義できますか?あなたの期待することを教えてください。 –

+0

DOMにエラーがありますか? – Ben

答えて

0

IEのデモです。

試してみてください。この(更新):

words.keypress(function(e) { 
    var maxWords = 4; 
    var wordCount = words.val().match(/\S+/g); 
    wordCount = wordCount ? wordCount.length : 0; 
    if (wordCount > maxWords && e.which != 8) { 
     words.next('span').remove(); 
     words.after('<span class="error">*Max word limit ' + maxWords + '</span>'); 
     return false; 
    } 
});​ 

デモ:ケビン・Bさんからhttp://jsfiddle.net/5Zd3V/8/

+0

これは動作していますが、もうテキストを編集することはできません。任意の提案 – Dips

+1

ここでそれを行う方法の一つです:http://jsfiddle.net/5Zd3V/6/ –

+0

ここにロジックは欠陥があります、あなたは異なる行にある限り、あなたが望むだけ多くの単語を入力することができます。 –

1

http://jsfiddle.net/5Zd3V/9/

$(words).keypress(function(e) { 
    var maxWords = 4, 
     wordLimit = words.val().match(/\S+/g), 
     isNoneWhite = String.fromCharCode(e.which).match(/\s/i), 
     limitReached = wordLimit ? wordLimit.length >= maxWords && isNoneWhite : false; 

    words.next('span.error').text(
     limitReached ? '*Max word limit ' + maxWords : '' 
    ); 

    return !limitReached; 
});​ 

は君たちが欠落していた唯一の事は確認していると思います入力された文字は新しい単語を作成しません(isNonWhite)