2013-09-26 2 views
0

hasfocus 바인딩의 녹아웃 유효성 검사에 문제점이 있습니다.hasfocus 바인딩의 녹아웃 유효성 확인

컨트롤의 유효성을 검사하려고 할 때 컨트롤에서 포커스를 잃을 때 오류 메시지가 표시됩니다. 그러나 양식 자체가로드 될 때 규칙이 트리거되고 오류 메시지가 표시됩니다.

어쨌든 양식의로드 또는 화재가 발생하지 않는 규칙을 초기화 할 때 알려주는 것이 있습니까?

self.lostfocus = ko.observable(false); 
self.lostfocus.extend({ NoBlankValidationlookup: { params: { control: self }, message: "Search Text cannot be empty"} }); 

ko.validation.rules['NoBlankValidationlookup'] = { 
validator: function (val, params) 
{ 
    ////if the control looses focus then validate. 
    if (!val) 
    { 
     if (params.control.Value().length == 0) 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 
    else 
    { 
     return true; 
    } 
}, 
message: 'Please enter at least 0 characters.' 
}; 

//HTML 
<div id="Div1" class="vm" style="display: block !important; text-align: left" data-bind="validationMessage:lostfocus"></div> 

알려주십시오.

답변

0

형식로드시 유효성을 관찰 할 수있는 isModified (false)를 사용하십시오. 이 같은

그래서 실행 뭔가 :

self.lostfocus.isModified(false) 
이 예를 들어, 규칙을 호출 할 때 지정하는 valueUpdate을 추가 할 수 있습니다
0

:

self.lostfocus.extend({valueUpdate: 'afterKeyDown', NoBlankValidationlookup: 
     { params: { control: self }, message: "Search Text cannot be empty"} }); 
+0

이 문제는 통제 불능 사용자 단지 탭하면 될 것이다 어떤 문자도 키를 누르지 않고 오류 메시지를 보여주고 싶습니다. 그래서 valueUpdate가 도움이되지 않을까요? – Shiras

+0

바로 알겠습니다. 이 경우 입력 블러 이벤트에 대한 바인딩 기능은 data-bind = "event : {blur : (function name here)}"와 같이 작동한다고 생각합니다. – proggrock

관련 문제