2014-01-13 3 views
1

Я использую knockout validation и пытаюсь выполнить то, что должно быть простым прецедентом.Проверка нокаута - есть ввод, подтверждающий другое поле

Я хочу, чтобы входные данные привязывались к определенному полю, но проверяли другое. Что-то вроде этого:

<input type="text" data-bind="validationElement: referrerId, value: referrerName" /> 

Но это, кажется, всегда (правильно) показывают ошибки проверки для referrerName вместо referrerId. Есть ли способ заставить это работать?

В основном я хочу эту скрипку:

http://jsfiddle.net/W3pQt/1/

показать ошибку для referrerId (который в скрипку всегда пусто).

+0

Итак, в вашем примере, какое свойство недействительно: referrerId или referrerName? И когда вы говорите об «ошибках проверки», вы имеете в виду автоматически вставленные сообщения проверки? Можете ли вы собрать jsfiddle, который демонстрирует ваш прецедент? – nemesv

+0

'Вы имеете в виду автоматически вставленные сообщения проверки? - да. Я хочу, чтобы это текстовое поле проверяло referrerId. Вот и все. Я хочу, чтобы tb сохранял привязанность к referrerName и проверял на referrerId –

ответ

1

http://jsfiddle.net/W3pQt/3/

Я сделал пользовательский валидатор, потому что я не мог понять, как это сделать без него.

ko.validation.rules['dependsOn'] = { 
    validator: function (val, otherVal) { 
     return typeof otherVal() !== "undefined"; 
    }, 
    message: 'Referrer Id must have a value: {0}' 
}; 

ko.validation.registerExtenders(); 

...

this.referrerName.extend({ dependsOn: this.referrerId }); 

Не зацикливайтесь на название 'dependsOn', который является немым. Именование вещей сложно.

+1

'Не зависеть от имени 'dependOn', которое является немым. Именование вещей сложно. «- рад, что я не единственный, кто думает, что :) –

+0

Если у вас есть время и желание посмотреть на другой ... http://stackoverflow.com/questions/21103748/pass- вычисленный-или-наблюдаемый-в-нокаут-валидатор –

+0

Извините, что я был так расстроен, что подтвердил, что я действительно не думал, что второй вопрос. Еще раз спасибо за вашу помощь здесь. –

Смежные вопросы