2014-01-15 50 views
1

试图在输入文本之前简单地隐藏提交按钮,但似乎没有任何事情发生。 (有什么在CoffeeScript中是错误的,但我不知道是什么 - 很新的js)在输入文本前隐藏提交按钮

我的形式如下:

<%= f.input :body, as: :text, input_html: { :id => "inputBody" } %> 
<%= f.submit "Answer", { :id => "button" }%> 

的CoffeeScript看起来是这样的:

$(document).ready -> 
    $("#button").hide() 
    $("#button").show() if $("#inputBody").length > 0 
+0

编辑的问题,但仍然得到同样的事情。 – user2759575

+0

页面上是否有任何js错误? https://getfirebug.com/errors它是否是有效的HTML? http://validator.w3.org/ –

回答

4

我不知道CoffeScript,但在JavaScript中你可以尝试这样的事情:

$(function(){ 
    $("#button").hide(); 

    $("#inputBody").keyup(function() { 
     var val = $(this).val(); 
     if (val.length > 0) { 
      $('#button').show(); 
     } 
     else { 
      $('#button').hide(); 
     } 

    }); 
}); 
+1

关键的区别在于$(x).val().length和'$(x).length'。 '$(x).length'告诉你有多少东西与选择器匹配,无论这种情况发生在''中。 –

+1

是的,但第二个问题是该语句(这是错误的)$(“#button”)。show()如果$(“#inputBody”)。length> 0只执行一次。 – Jacek

+0

对。我不是在批评,只是试图澄清发生了什么。 –