2012-11-27 39 views
-1

我迭代列表,並顯示其值在文本框中。 有兩個文本框名稱checkquantity & quantity其值我從列表中迭代。問題禁用提交按鈕使用jquery

現在用戶必須輸入數量值,如果他們輸入的數量值多於分配的數量。然後我必須禁用提交按鈕。

這是我的問題: 從我的下面的代碼中,提交按鈕僅在第一次啓用。即如果我第一次輸入無效值,那麼我的代碼工作正常,但如果我再次在另一個文本框中輸入有效值,那麼我的按鈕是啓用的。但它不應該啓用,因爲在第一個文本框中輸入無效值。

注:用戶只能在文本框中的名稱quantity輸入值,這將文本從文本框checkquantity進行驗證。

請檢查我的下面的代碼,並建議我一個解決方案。

$('input[name="quantity"]').keyup(function() { 
    var $tr = $(this).closest("tr"); 
    var q = +$tr.find('input[name^="quantity"]').val(); 
    var cq = +$tr.find('input[name^="checkquantity"]').val(); 

    if (q > cq) { 
     $('#submtbtnId').attr('disabled', 'disabled'); 
    } 
    else { 
     $('#submtbtnId').removeAttr('disabled'); 
    } 
}); 
----------------------------------- in 
while loop my list is iterating 
{ 
    <tr> 
    <td width = "10%"> 
     <input type = "text" name = "quantity"values = "" id = "quantity"/> 
     <input type = "text" name = "checkquantity" disable = "disable" 
      values = "random values coming from my list 
       eg. 5 or 9 ..."/> < /td> 
    </tr > 
} 

------------------------- 
< input type = "submit" id = "submtbtnId"/>​ 
+0

我覺得因爲你只有'input [name =「quantity」]定義的函數''。如果你爲'input [name =「checkquantity」'''做了一個類似的函數會發生什麼? –

+1

它應該被禁用,並帶有「d」。這是一個形容詞,而不是動詞。 –

+0

@Diodeus謝謝。但你能爲我的問題提出任何答案嗎?而不是然後檢查我的拼寫。 –

回答

0

如果這是在keyup事件,每次通過遍歷他們檢查所有的文本框的情況下..

UPDATE

貌似問題與命名的屬性 。 如果您嘗試使用.val()訪問該值,則應該是

添加了return false;條件以確保當條件失敗時它會跳出循環。

其次有一個更多的問題..可以說輸入爲空。所以,當你將其轉換成一個號碼,然後是和比較總是失敗..

所以我必須添加如果該字段不爲空檢查條件,才轉換爲數字

Check Fiddle

+0

同樣的問題。我爲此苦苦掙扎。請幫助 –

+0

你可以爲這種情況創建一個小提琴..很難說你的問題到底在哪裏.. –

+0

看起來像問題是屬性值..它應該是價值,而不是使用.val()訪問它們。() –