2012-01-23 15 views
0

input type=textを20文字以上で展開する場合は、完全に機能する関数があります。私の問題は、無効な入力に対してこの関数をどのように適用するかです。 http://jsfiddle.net/DCjYA/168/無効な要素の呼び出し関数

$('input[type!="submit"]').focus(function(){ 
    if ($(this).val().length > 20) { 
     $(this).attr('data-default', $(this).width()); 
     $(this).animate({width: 300}, 'slow'); 
     $(this).parent().addClass('cooling'); 
    } 
}).blur(function(){ 
    var w = $(this).attr('data-default'); 
    $(this).animate({ 
     width: w 
    }, 'slow'); 
    $(this).parent().removeClass('cooling'); 
}); 

はありがとう:。より良いフィドルに私の例を確認し、私の関数の動作を理解するために

答えて

0

ダニエルはfocusblurイベントがdisabledinputでは動作しません言ったように。その後、この目的のために、hover, mouseenter or mouseover, mouseleave or mouseoutはイベントを使用することができますが、私はそれを見つけることができませんでしたが、私は見つけましたのexpandingです。あなたはそれを使って問題を解決することができます。

$('input:disabled').mousemove(function(){ 
     if ($(this).val().length > 20) { 
     $(this).attr('data-default', $(this).width()); 
     $(this).animate({width: 300}, 'slow'); 
     $(this).parent().addClass('cooling'); 
     } 
}); 

フィドル:http://jsfiddle.net/raj_er04/DCjYA/174/

+0

はIE上では動作しません:( – mcmwhfy

+0

$( '入力してみてください[無効にする] ')..それはすべてで動作するだろう –

+0

それはIE8で動作していないいいえ:((フィドルチェック – mcmwhfy

0

無効になっている要素にフォーカスを当てることができないため、このための回避策を作成する必要があります。または、これに別の関数を使用しますか?

EDIT:おそらくこれはあなたのために役立つことができますEvent on a disabled input

+0

とどのように私は私の機能でこれを統合ん:本当に別の関数を使用したくない:(( – mcmwhfy

関連する問題