2014-01-15 51 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

對。我不是在批評,只是試圖澄清發生了什麼。 –