3

ブラウザが保存されたユーザー名とパスワードを入力フィールドに入力したことを検出しようとしています。この投稿を見ましたが、この機能を変更するオプションがなく、他のソリューションが機能しません。

基本的に、ロード時にフィールドが空の場合、ログインボタンは無効になっています。ただし、ブラウザが入力を入力しても、ボタンは有効になりません。私はそれが変化するかどうかを確認する方法を見つけようとしています。

私はjQueryとJSを使用しています。

.change、.ready、.load、その他すべてを試しました。.loadイベントの後に発生するようです。

誰かがこれに対する解決策を知っていますか?タイムアウトの使用は避けたいと思います。

4

4 に答える 4

1

ブラウザにフィールドに事前入力する組み込み機能があるかどうかを検出する方法はないと思います。

何かがあれば、ボタンを有効にするタイマーで問題を解決できます。このようなもの:

setInterval(function (){
 if($("#username").val()!=""){
  $("#loginbutton").attr("enabled","enabled"); 
 }
},1000)
于 2012-11-02T14:54:27.563 に答える
0

これをテストしていませんが、各フィールドのデフォルト値を、ページが読み込まれた後(または、問題がある場合はページが読み込まれてから.2秒後)の各フィールドの値と単純に比較できませんか?

于 2012-11-02T14:56:04.530 に答える
0

重要なのは、フィールドにキーが押されていなくてもフィールドにデータが入力されることです。

したがって、入力フィールドで.keypressをトラップして、キーが押されているかどうかを確認する場合、フォームを送信して、値が存在するにもかかわらずキーが押されていないことがわかった場合は、ブラウザーが事前にそれを投入しました。

送信する前に(ページが読み込まれた直後に)知りたい場合は、キーを押さなくても値が変更されたかどうかを確認する間隔でチェックを実行する必要があります。

@japrescottが指摘したように、ユーザーがに値を貼り付けた場合に備えて、.focusもチェックすることをお勧めします。

于 2012-11-02T14:50:13.627 に答える
-1

Jquery .live()関数を試してみてください

$('.element').live('load', function(){
  enableLogin();
});
于 2012-11-02T15:06:24.877 に答える