2017-12-20 8 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

あなたはこのためにJavaScriptを使用している具体的な理由はありません場合は、代替があなたのCSSに以下を追加することです大文字で値を持つ必要があります。

+2

CSSを使用すると、テキストが大文字として表示されますが、基礎となるテキストは変更されません。したがって、データベースに提出されたときに、テキストはユーザが入力した場合になります。 –

+0

確かに。それはjavascriptで変換を行う良い正当な理由になります。次に、入力があるたびにインラインで更新するのではなく、他の検証コードとグループ化します。 – Shilly

+0

合意しましたが、答えに言及する価値のある注意点の1つです。 –

関連する問題