敲除验证需要元素
Knockout Validation Need the Element
我想将整个元素传递到我的验证中。
元素:
<input id="txtPhoneNumber" data-bind="value: Phone, intlTelInput: Phone" name="phone" type="text" class="form-control">
JS KO:
ko.validation.rules['validPhone'] = {
validator: function (val) {
return val.intlTelInput('isValidNumber');
},
message: 'Invalid Phone Number'
}
我遇到的问题是我不想重写 intlTelInput,它采用的元素不仅仅是一个直接值。有什么建议吗?
我不赞成将元素传递给敲除验证,但如果你真的想这样做,那么你可以创建一个自定义绑定,该绑定将传递要验证的可观察对象,然后你可以从该自定义绑定扩展可观察到验证器并将元素传递给它。
1.. 制作验证器
`ko.validation.rules['validPhone'] = {
validator: function (val, element) {
//do what you want with the element here
return val.intlTelInput('isValidNumber');
},
message: 'Invalid Phone Number'
}`
2.. 进行自定义绑定
ko.bindingHandlers.validPhone = {
init: function(element, valueAccessor){
var observable = valueAccessor();
observable.extend({validPhone: element})
}
}
3.. 元素应该这样定义
<input id="txtPhoneNumber" data-bind="value: Phone, validPhone: Phone, intlTelInput: Phone" name="phone" type="text" class="form-control" >
我想将整个元素传递到我的验证中。
元素:
<input id="txtPhoneNumber" data-bind="value: Phone, intlTelInput: Phone" name="phone" type="text" class="form-control">
JS KO:
ko.validation.rules['validPhone'] = {
validator: function (val) {
return val.intlTelInput('isValidNumber');
},
message: 'Invalid Phone Number'
}
我遇到的问题是我不想重写 intlTelInput,它采用的元素不仅仅是一个直接值。有什么建议吗?
我不赞成将元素传递给敲除验证,但如果你真的想这样做,那么你可以创建一个自定义绑定,该绑定将传递要验证的可观察对象,然后你可以从该自定义绑定扩展可观察到验证器并将元素传递给它。
1.. 制作验证器
`ko.validation.rules['validPhone'] = {
validator: function (val, element) {
//do what you want with the element here
return val.intlTelInput('isValidNumber');
},
message: 'Invalid Phone Number'
}`
2.. 进行自定义绑定
ko.bindingHandlers.validPhone = {
init: function(element, valueAccessor){
var observable = valueAccessor();
observable.extend({validPhone: element})
}
}
3.. 元素应该这样定义
<input id="txtPhoneNumber" data-bind="value: Phone, validPhone: Phone, intlTelInput: Phone" name="phone" type="text" class="form-control" >