2016-05-15 81 views
0

我需要清除文本和隐藏图像,当有人删除使用jquery的输入文本内的消息这里是我的代码,但现在不工作现在有人向我展示样本片段?jquery输入自动清除文本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
    var urltext = $("#https_urllink").val(); 
    $("#https_urllink").onkeydow(function(){ 
    if(urltext == ""){ 
    $("#httpstext").text(""); 
    $("#httpsimage").hide(); 
    }else if(urltext != "www.ilik.com"){ 
$("#httpstext").text("hello no"); 
} }); }); 
    </script> 

这里是我的HTML

<img src="hmm.png" id="httpsimage"/> 
<div id="httpstext">See her</div> 
<input type="text" id="https_urllink" value="delete now"/> 
+0

onkeydow(函数(){??应的onkeydown(函数(){ – Poria

+0

也尝试检查空值一样,如果(urltext.length <1) – Poria

+0

它没't工作@Poria – Micheal

回答

0

我发现在这两个代码的问题。

首先,事件​​拼错为$("#https_urllink").onkeydow(function(){,并且还包括on,这不是必需的。

其次,当你使用input type="text"时,jquery会像用户那样更新字段。所以,而不是使用$("#httpstext").text("");我们可以使用$("#httpstext").val("");

下面的代码可能会解决您的问题。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
urltext = $("#https_urllink").val(); 
$("#https_urllink").keydown(function(){ 
if(urltext == ""){ 
$("#httpstext").val(""); 
$("#httpsimage").hide(); 
     } 
    }); 
}); 
</script> 

更新

$(document).ready(function() { 
    $("#https_urllink").keydown(function() { 
    if ($("#https_urllink").val() == "") { 
     $("#httpstext").val(''); 
     $("#httpsimage").hide(); 
     return false; 
    } else if($("#httpstext").val() != "www.ilik.com") { 
     $("#httpstext").val('hello no'); 
     $("#httpsimage").hide(); 
     return true; 
    } 
    }); 
}); 

上面的代码是现在工作。你可以在这里检查小提琴。 https://jsfiddle.net/b0p14sfa/1/

+0

它没有在这里工作,我编辑了我关于urltext的问题@Kirs – Micheal

+0

另一个重要的确认是你检查字段值是否正确?因此,下面的代码if(urltext ==“”) {'只有当$(“#https_urllink”)的值为空时才会执行,这些字段是a已经空了,你正在清空空白字段的值。在这里进行检查是没有意义的。请重新考虑您的要求。 –

+0

它假设是'if(urltext!=“”){'。请试试这个。 –

0

修复以下问题,它将起作用。

  1. 使用$("#https_urllink").on('keydown', function(){}
  2. 检查的$("#https_urllink").val();的​​事件处理程序里面的值值可能已经改变。在$(document).ready()中调用它将不会反映这些更改。
  3. 使用$("#httpstext").html();而不是$("#httpstext").val();。 divs没有价值,所以调用.val()将无法​​正常工作。

看看下面的代码:

$(document).ready(function(){ 
    $("#https_urllink").on('keydown', function(){ 
     urltext = $("#https_urllink").val(); 
     if(urltext == ""){ 
      $("#httpstext").html(""); 
      $("#httpsimage").hide(); 
     } 
    }); 
}); 
0

在你的代码urltext总是 '立即删除'。因为只有在文档准备好的情况下才能获得价值。你需要获得keydown事件的价值,然后才能正常工作。

另外我建议你使用keyup而不是keydown。

我已经更新了代码。请有尝试,希望它会帮助你

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#https_urllink").keyup(function(){ 
     var urltext = $("#https_urllink").val(); 
    console.log(urltext);  
    if(urltext == ""){ 
     $("#httpstext").text(""); 
     $("#httpsimage").hide(); 
     return false; 
    } 
    else if(urltext != "www.ilik.com"){ 
     $("#httpstext").text("hello no"); 
     $("#httpsimage").show(); 
     return true; 

    } 
}); }); 
</script> 

<img src="hmm.png" id="httpsimage" height="150" width="100"/> 
<div id="httpstext">See her</div> 
<input type="text" id="https_urllink" value="delete now"/>**strong text**