2017-04-11 1 views
-1

텍스트 필드에 2 문자마다 점 (.)을 어떻게 추가 할 수 있습니까?텍스트 필드에 2 문자 씩 입력 할 때마다 점 추가 extjs 5

특정 방법이 있습니까?

내 코드 :

var txtNoNpwp = { 
    afterLabelTextTpl: required, 
    allowBlank: false, 
    anchor: '100%', 
    labelAlign: 'left', 
    labelWidth: 130, 
    fieldLabel: 'No NPWP', 
    id: 'txtNoNpwp', 
    name: 'txtNoNpwp', 
    xtype: 'textfield' 
}; 
+0

키 업 이벤트를 캡처하고 매초마다 '.'를 추가 할 수 있습니다. 나는 이것이 내가 당신의 코드를 보지 않고 할 수 있다고 생각한다. 귀하의 코드를 공유하십시오 ** 붙어있는 곳 ** – Rajesh

+0

도움이 될 수 있습니다 : https://www.sencha.com/forum/showthread.php?106101-Keyup-on-a-TextField-SearchFIeld – Rajesh

+0

thanks @Rajesh i 시도해 보겠습니다. – andrei

답변

1

당신은 change 이벤트에서 원하는 형식으로 값을 변경할 수 있습니다. 필드의 값이 변경 될 때마다 새 값과 이전 값으로 호출됩니다.

먼저 다음 코드로 이전 형식을 제거하십시오.

newValue = newValue.replace(/\./g, ''); 

그런 다음 새 형식을 적용하십시오.

newValue = newValue.replace(/.{2}/g, function (substr) { 
    return substr + '.' 
}); 

마지막으로 당신은 working Sencha Fiddle를 참조 이런 식으로 뭔가를해야

field.setRawValue(newValue); 

전체 코드를 사용하여 새 값을 설정해야합니다.

var txtNoNpwp = { 
    listeners: { 
     change: function (field, newValue) { 
      newValue = newValue.replace(/\./g, ''); // remove previous format 
      newValue = newValue.replace(/.{2}/g, function (substr) { // apply new format 
       return substr + '.' 
      }); 
      field.setRawValue(newValue); 
     } 
    }, 
    xtype: 'textfield', 
    //... 
}; 
+0

이 답변은 저에게 가장 잘 맞았습니다. 큰 감사를 드린다 ! @ 앤디 - y – andrei

관련 문제