-1

我想执行一个 jquery 脚本,在有人从元素中<label for='username'>从浏览器给出的存储输入值(当 autocomplete='on' 时给出的值)中选择一个条目后,该脚本将淡出。<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 回答