2014-08-29 34 views
0

我有一堆需要的字段(此處未顯示),但隨後是可選的兩個字段。 但是,如果或者這兩個獲得輸入,則需要其他IS。所以我試圖完成的是在一個或另一個輸入時立即禁用提交按鈕,然後在兩者都輸入時重新啓用它。如果兩者都清空,我還需要重新啓用。如果一個字段有輸入但不是另一個,則禁用按鈕,當兩者都有值時啓用(一個是選擇)

我是差不多看來。一個是選擇,另一個是文本輸入。我認爲我的一個問題是需要在同一個函數中使用'keyup'和'onchange'(或者完全是模糊或其他的東西)。

所以這裏是我的開始。它可能不是正確的方向,但它有一半的工作,所以希望這是一個簡單的解決方案。

JSFiddle

HTML

<div id="createnewtask"> 
    <h4>Create New Task</h4> 

    <div> 
     <label for="fassignedto" class="col-sm-3 control-label">Assign To</label> 
     <select class="form-control" name="fassignedto" id="fassignedto"> 
      <option value="0">&nbsp;</option> 
      <option value="12456">Chad</option> 
      <option value="12430" selected="">Jason</option> 
     </select> 
    </div> 
    <div> 
     <label for="ftasktypeid" class="col-sm-3 control-label">Task Type</label> 
     <select class="form-control" name="ftasktypeid" id="ftasktypeid"> 
      <option value="0" selected>&nbsp;</option> 
      <option value="6">Appointment</option> 
      <option value="1">Call Back</option> 
      <option value="5">Campaign</option> 
     </select> 
    </div> 
    <div> 
     <label for="fduedate2">Due Date</label> 
     <input type="text" name="fduedate2" id="fduedate2" class="form-control" placeholder="Enter Date"> 
    </div> 
    <button type="button" class="btn btn-success" id="notesave" name="notesave" onclick="return fnsavenote();">Submit</button> 
</div> 

JQuery的:

$('#createnewtask').keyup(function() { 
    if ($('#ftasktypeid').val() != 0 && $('#fduedate2').val() != "") { 
     $('#notesave').removeAttr('disabled'); 
    } else if ($('#ftasktypeid').val() == 0 && $('#fduedate2').val() == "") { 
     $('#notesave').removeAttr('disabled'); 
    } else { 
     $('#notesave').attr('disabled', true); 
    } 
}); 
+0

如果在選擇選擇後才能設置截止日期,只需隱藏截止日期,直到設置爲選擇,然後再設置截止日期 – Anthony 2014-08-29 14:27:26

回答

0

而不是

$('#notesave').attr('disabled', true)

$('#notesave').removeAttr('disabled')

嘗試

$('#notesave').prop('disabled', true)

$('#notesave').prop('disabled', false)

disabled HTML屬性僅用於由瀏覽器以確定所述初始值時,它呈現頁面。 disabled DOM屬性是實際存儲輸入是否被禁用的值。

This works just like the checked attribute

0

我想我想通了。就像我說過的,我需要在同一個函數中同時執行keyup和change。我相信這個'綁定'正在按照需要工作。請糾正我,如果我錯了...

$('#createnewtask').bind('keyup change', function() { 
    if ($('#ftasktypeid').val() != 0 && $('#fduedate2').val() != "") { 
     $('#notesave').prop('disabled', false); 
    } else if ($('#ftasktypeid').val() == 0 && $('#fduedate2').val() == "") { 
     $('#notesave').prop('disabled', false); 
    } else { 
     $('#notesave').prop('disabled', true); 
    } 
}); 

我也根據@ tomaroo的建議編輯'prop'。謝謝!

我更新了JSFiddle

相關問題