2014-01-27 32 views
0

如何檢查表單是否爲空並且表單爲空然後將disabled="disabled"設置爲提交按鈕?如何檢查表單是否爲空,如果表單爲空,則將disabled =「disabled」設置爲提交按鈕?

<form action="/contact/" method="POST" id="form"> 
    <input type="text" id="name" name="name" class="form-control" placeholder="Name"> 
    <input type="email" id="email" name="email" class="form-control" placeholder="E-Mail"> 
    <textarea name="msg" id="msg" class="form-control" rows="4" placeholder="Message"></textarea> 
    <input type="submit" value="Send" class="button-contac-send"> 
</form> 

回答

0

我會告訴你如何做到這一點,然後試着讓它工作。如果你的努力在這裏發佈你的代碼,我們會提供幫助。您可以使用Jquery或將必需的字段驗證器添加到您的文本框中。

如果你正在使用JQuery路由,點擊你的提交按鈕(你需要首先給它一個ID屬性),檢查這些字段是否全部爲空。如果他們是那麼你可以說返回false。這將取消提交事件。

0

這是一個真正簡單的方法,以適應jQuery的需要。
如果你想要做大量的客戶端驗證的,你可能要考慮一個jQuery Validation Plugin

我也去了幾個業務規則添加到你的問題,你沒有指定:

  • 所有字段是必需的 - 發送按鈕應被禁用,除非每一個輸入場有一定的價值,當任何字段爲空,當所有的字段填寫重新啓用
  • 按鈕應禁用這不應該。只發生一次,但每當發生變化時應重新評估e到數據。

要做到這一點,我們將做到以下幾點:

  • 通過附加的處理程序與方法.change()選擇所有的輸入元素和存儲作爲一個jQuery對象
  • 監視器變化。當表單通過鏈接到事件處理程序的末尾時,我們也會立即調用此方法
  • 使用.each()方法遍歷每個輸入元素
  • 檢查項目是否有值。如果沒有,請注意,有someEmptyElements
  • 發送按鈕的disabled屬性設置爲someEmptyElements

所以在jQuery的值時,它看起來就像這樣:

var $inputs = $("#name, #email, #msg"); 

$inputs.change(function() { 
    var someEmptyElements = false; 

    $inputs.each(function() { 
     if (!$(this).val()) { 
      someEmptyElements = true; 
     } 
    }); 

    $("#send").prop("disabled",someEmptyElements); 

}).change(); 

Demo in jsFiddle

相關問題