我有這個HTML: this
<input type="text" name="textField" /> <input type="submit" value="send" />
我該如何作這樣的事情: spa
我嘗試過這樣的事情: code
$(document).ready(function(){ $('input[type="submit"]').attr('disabled','disabled'); $('input[type="text"]').change(function(){ if($(this).val != ''){ $('input[type="submit"]').removeAttr('disabled'); } }); });
…但這不起做用。 有任何想法嗎? orm
這是文件輸入字段的解決方案。 事件
要在未選擇文件時禁用文件字段的提交按鈕,而後在用戶選擇要上傳的文件後啓用: ip
$(document).ready(function(){ $("#submitButtonId").attr("disabled", "disabled"); $("#fileFieldId").change(function(){ $("#submitButtonId").removeAttr("disabled"); }); });
HTML: rem
<%= form_tag your_method_path, :multipart => true do %><%= file_field_tag :file, :accept => "text/csv", :id => "fileFieldId" %><%= submit_tag "Upload", :id => "submitButtonId" %><% end %>
$(function() { $(":text").keypress(check_submit).each(function() { check_submit(); }); }); function check_submit() { if ($(this).val().length == 0) { $(":submit").attr("disabled", true); } else { $(":submit").removeAttr("disabled"); } }
問題在於,僅當焦點從輸入移開時,更改事件纔會觸發(例如,有人單擊了輸入或將選項卡移出了輸入)。 嘗試改用keyup: get
$(document).ready(function() { $(':input[type="submit"]').prop('disabled', true); $('input[type="text"]').keyup(function() { if($(this).val() != '') { $(':input[type="submit"]').prop('disabled', false); } }); });
或者對於不喜歡在每件事上使用jQ的咱們: input
document.getElementById("submitButtonId").disabled = true;
您也可使用相似這樣的東西: it
$(document).ready(function() { $('input[type="submit"]').attr('disabled', true); $('input[type="text"]').on('keyup',function() { if($(this).val() != '') { $('input[type="submit"]').attr('disabled' , false); }else{ $('input[type="submit"]').attr('disabled' , true); } }); });
這是現場的例子