我有淘汰賽做這個輸入驗證..我想。我無法設置任何中斷,但它從$ root.ValidationMessages.Object發送靜態文本如何在驗證失敗後在Knockout中調用ajax?
下面是下面的輸入元素。
<input id="objectNumber" name="objectNumber" class="setsize ats-ccnumber valid"
type="text" placeholder="Number"
data-bind="value: PaymentOptions.Object.Number>
我想怎麼辦時,驗證失敗讓輸入ID和之前的文本被消滅了驗證失敗時輸入的無效的文本以某種方式發送異步Ajax調用。這裏是'驗證對象的KO處理程序'
ko.bindingHandlers.validateObject = {
'init': function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var message = value;
var when = function() { return true; };
if (value != null && typeof value == "object") {
if (value.when != null) {
when = function() {
if (typeof value.when == 'function') return value.when();
return value.when;
};
}
message = value.message;
}
addObjectValidation(when, getValueFor(message), element);
},
'update': function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
}
};
這裏是addObjectValidation的Javascript
function addObjectNumValidation(callback, message, element) {
$(element).rules("add", { required: function (x) { return !$(x).attr('disabled') && callback(); }, number2 : function() { return { objectType: $('#objectType').val(), required: !$(x).attr('disabled') && callback() }; }, messages: { required: message, creditcard2: message} });
var messages = $.data(element, 'validationMessages') || [];
messages.push(message);
$.data(element, 'validationMessages', messages);
}
我看不出這是正在爲驗證。首先暴露於Knockout。任何人都可以解釋發生了什麼事情,如果可能的話,以及如何在驗證失敗之後但在該字段被清除之前發出ajax調用?
是否有任何理由在數字有效後執行ajax請求?最好的做法是在點擊按鈕時僅使用ajax執行信用卡的帖子。 –
有數據庫日誌記錄是每個失敗的表單輸入嘗試所必需的。 – Proximo