5

だから私がコードを持っているなら

.rsform-input-box {text-transform: uppercase;}

下部のフォーム フィールドに固有の Web サイトhttp://www.thediabetesnetwork.comでは、入力すると大文字に変換されますが、入力した場合はデータがエクスポートされます。たとえば、次のように入力すると、シェーン、シェーンを視覚的に表示します。送信すると、データベース内のシェーンに戻ります (以前のある時点で)。

私の質問は、なぜこれを行うのか、そして回避策は何ですか? 私の他のオプションは

 function toUpCase()
{
document.getElementById("first").value=document.getElementById("first").value.toUpperCase();
document.getElementById("last").value=document.getElementById("last").value.toUpperCase();
document.getElementById("email").value=document.getElementById("email").value.toUpperCase();
}  
4

2 に答える 2

13

CSS は、コンテンツの表示のみを目的としています。したがって、ユーザーが入力した値や、フォームからデータベースに送信された内容は変更されません。

ビジネス要件がすべての大文字の値のみをデータベースに受け入れることである場合は、これをバックエンドで処理するのが最善です。例: $input = strtoupper($input);PHP を使用している場合。バックエンドでこれを行うと、ユーザーが JavaScript をオフにしている場合でも処理が確実に行われます。

セキュリティ要件が低い場合は、JavaScript を介して処理するという考えが機能するはずです。toUpCaseフォームを送信する前に関数を起動する だけです。

使いやすさの観点から言えば、データベースに何が入るかを心配するのは、実際にはユーザーの仕事ではありません。そして、彼らはおそらく知る必要はありません。しかし、たとえばログイン時など、これらのデータ ポイントを使用するたびに舞台裏で正しい大文字小文字を適用することで、ユーザーの生活を少し楽にすることができます。

于 2012-11-01T22:38:01.327 に答える
0

この回答に追加すると思いますが、コンテンツを CSS 経由で表示される方法で返したい場合は、innerTextこれを行います。次の例を参照してください。

実行例を次に示します。

(function() {
  document.getElementById('output').innerHTML = document.getElementById('text-selector').innerText;
}());
.uppercase {
  text-transform: uppercase;
}

div {
  margin-bottom: 20px;
}
<label>Input:</label>
<div class="container uppercase">
  <div>Here is some text.</div>
  <div id="text-selector">This is the text that will be be selected.</div>

</div>

<label>Output:</label>
<div class="container">
  <div>Here is some text.</div>
  <div id="output"></div>
</div>

仕様: https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute

于 2017-02-21T21:10:17.460 に答える