-1

<label for='username'>誰かが要素からブラウザによって与えられた保存された入力値(autocomplete ='on'のときに与えられる値)からエントリを選択した後にフェードするjqueryスクリプトを実行したいと思い<input name='username' type='text'>ます。

ユーザーが保存された入力値から選択を選択したかどうかを確認する方法はありますか?

..ユーザーがキーまたはマウスボタンを押すたびにテキスト入力が空かどうかを確認するとき、私はすでにこれに対する醜い解決策を考えていますが、より良い解決策が欲しいです

更新: 私が考えていた解決策は実際には機能しないことがわかりました-しかし、とにかくここに擬似コードがあります:

$(document).ready(function(){
mouseup(function(){
  if(!isWhitespace($("#username")){
   //blur the label
  }
 //same function for keyup() 
  function isWhitespace(elem){
           $elemCont = elem.val().replace(/^\s+/, '').replace(/\s+$/, '');
                            if ($elemCont === '') {
                                // element contained all whitespace
                                elem.val('');
                                return true;
                            }else{
                                // element has real content
                                elem.val($elemCont); //free element of leading/trailing whitespace  
                                return false; 
                            }
       }
}

}
4

1 に答える 1

0

私はそれをややいい方法で行う方法を考え出しました。表示される保存された入力値のリストはの一部ではなく$(document)、要素の名前を見つけることができなかったため(名前をオフにできるとは思わないautocoplete="off")、困難でしたが可能でした。ドキュメントにカーソルを合わせるたびに実行される関数を作成しただけです

$(document).hover(function() {

if(!isWhitespace($("#inputId")){
//blur label
}


},function(){});  

これは、マウスをブラウザの外に移動し、キーボードを使用して保存された値のリストから項目を選択した場合でも機能します。

誰かがより良い解決策を見つけたら、遠慮なく応答してください

于 2012-05-09T17:36:55.720 に答える