所以我有一些輸入類型=「數量」字段後 - 當他們改變了我這條命令:得到一個輸入值變化事件
$('.amount-input').change(function() {
checkAmount($(this));
setPrices();
allowSubmit();
});
的checkAmount功能運行AJAX請求更改元素的值,以檢查該數字是否低於或高於某個其他數字(可以說5)。如果是更高,它設置一個隱藏字段的值,唯一的每個數字領域,爲「真」:
var $toHighAmount = aElement.prev().prev().prev();
$toHighAmount.val('true');
接下來,allowSubmit功能應該檢查所有那些真/假字段的值,如果其中任何一個設置爲true,則應禁用提交按鈕。
function allowSubmit() {
var givenError = "false";
$(".rowToHighAmount").each(function() {
var val = $(this).get(0).value;
if (val == "true") {
givenError = "true";
}
});
if (givenError == "true") {
$("#cartSubmitBtn").attr("disabled", "disabled");
} else {
$("#cartSubmitBtn").removeAttr("disabled");
}
}
所以 - 對於這個問題。 checkAmounts()會更改隱藏的true/false字段的值。但是 - 當allowSubmit()運行時,它會指向該字段的舊值。因此,例如:
如果我將input type =「number」的值設置爲4,那麼將true/false字段設置爲false。如果我然後將input type =「number」更改爲6 - true/false字段設置爲true(意思是6高於5) - 但allowSubmit運行時仍認爲該值爲false - 並且不會禁用提交按鈕。只有再次增加數字 - allowSubmit纔會明白這是真實的價值。
這是相同的另一種方式。爲了再次激活提交按鈕,我必須將數字字段更改爲5號以下的數字。
因此 - 總而言之 - 我需要確保allowSubmit提取的值是absolut當前值 - 而不是更改操作之前的值。
任何人有任何想法?
內'setPrices'和'allowSubmit'應該從你的Ajax請求的成功處理程序的一部分運行。 – 2013-05-05 18:23:59