3

簡単なことをしたい:
入力フィールドが空の場合-不透明度:0.5
フィールドが空でない場合-不透明度1。

問題が発生しました:ブラウザがユーザー名またはパスワードを自動的に完了すると、イベントはトリガーされません。

明らかにこれは機能しません:

.change()

これも機能しません:

//CSS
selector:not(:empty){stuff1}
selector:empty{stuff2}

しかし、うまくいく他の明確な解決策を見つけることができませんでした。

編集:不透明度を変更する方法を知っています。
jQueryで空または空でないフィールドを選択する方法を知っています。
ブラウザがログインフォームに入力したときにイベントをトリガーする方法がわかりません。
これはページの読み込み時に行うことができますが、後で行うこともできます(たとえば、彼が自分でユーザー名を入力し、パスワードが自動的に入力されるなど)

4

2 に答える 2

1

アーレンの答えを拡張する:

<script type="text/javascript">
    $(window).load(function(){
        var inputs = $(":input");
        inputs.each(function(i){
           fadeFunction($(this));
           $(this).change(function(){fadeFunction($(this));});
        });

    });

    function fadeFunction(obj){
        if(obj.val().length === 0){
           obj.fadeTo(0,0.5);
        }
    }
</script>

私はこれの構文をチェックしていませんが、それは一般的な考え方を理解しています。

于 2012-11-19T21:39:24.037 に答える
1
$(function(){
  if($('#myInput').val().length === 0){
    $('#myInput').fadeTo(0, 0.5);
  }
});

値の長さを確認できます。これにより、ドキュメントの準備が整います。

ハンドラーは値を入力changeしている可能性が高いため、かなり冗長になります...ただし、必要に応じて変更ハンドラーにアタッチできると思います。を使用して入力をターゲットにすることには注意が必要です。そのため、誰かが1つの入力を入力し始めたときに、フォーム全体がフェードアウトすることはありません。$(this)

于 2012-11-19T21:27:33.193 に答える