2017-12-20 19 views
0

Jquery를 사용하여 대문자에 대한 사용자 입력을 실시간으로 처리합니다. 하지만 일부 데이터는 대문자가 아닌 약 2 %의 데이터를 받았습니다. 가능한 원인을 알 수 있습니까?대문자에 jquery 사용자 입력이 어떤 경우에 작동하지 않습니다.

.uppercase { 
    text-transform: uppercase; 
} 

그리고 그 항상 각 입력 요소에 .uppercase 클래스를 추가 :

//convert all lower case to upper case 
$("input, textarea").not("[data-controlname='txtCompanyEmailAddress'] input," + 
        "[data-controlname='KeyAccEmailaddress'] input," + 
        "[data-controlname='AccDeptEmailaddress'] input," + 
        "[data-controlname='CompanyEmail'] input," + 
        "[data-controlname='CompanyURL'] input," + 
        "[data-controlname='txtInternalComment'] textarea," + 
        "[data-controlname='txtRejectCommentToSupplier'] textarea" 
        ).on('input', function(evt) { 
      var input = $(this); 
      var start = input[0].selectionStart; 
      $(this).val(function (_, val) { 


      return val.toUpperCase(); 
      }); 
      input[0].selectionStart = input[0].selectionEnd = start; 
}); 
+1

출력이 있어야 할 때 출력이 대문자가 아닌 것을 알고 있습니까? '.not()'리스트에있는 요소들 중 하나에 의해 대문자로 변환되지 않는 입력이 만들어지지 않았습니까? CSS 규칙'text-transform : uppercase; '를 사용하지 않는 이유는 무엇입니까? – Shilly

+0

확실히, 커버되지 않은 입력은 .not() 내부에서 선택되지 않습니다. – YHTAN

답변

0

이에 대한 자바 스크립트를 사용하는 특별한 이유가없는 경우, 대안은 당신의 CSS에 다음을 추가하는 것입니다 대문자로 그 값을 가질 필요가있다.

+2

CSS를 사용하면 텍스트가 대문자로 표시되지만 기본 텍스트는 변경되지 않습니다. 그래서 데이터베이스에 제출할 때 텍스트는 사용자가 입력 한 경우가 될 것입니다. 반드시 제출하기 전에 사용자가 보았던 것은 아닙니다. –

+0

실제로. 그것은 자바 스크립트에서 변형을 수행하는 좋은 타당한 이유가 될 것입니다. 다시 한번, 입력이있을 때마다 인라인으로 업데이트하는 대신 다른 유효성 검사 코드로 그룹화합니다. – Shilly

+0

동의하지만 답안에서 언급 할 가치가있는 경고 중 하나입니다. –