私はJavaScriptで作業しています。テキストフィールドに文字だけが許されているかどうかの検証を追加したいと思います。Javaスクリプト検証シンボル%はテキストフィールドで許可してはいけません
文字と一緒に、私はキーコード37の左矢印キーを許可しました。しかし、%のキーコードも37なので、これは問題を作り出しています。%記号を許可したくありません。
両方のキーコードが37なので、どのように%と左矢印キーを区別することができますか教えてください。
私はJavaScriptで作業しています。テキストフィールドに文字だけが許されているかどうかの検証を追加したいと思います。Javaスクリプト検証シンボル%はテキストフィールドで許可してはいけません
文字と一緒に、私はキーコード37の左矢印キーを許可しました。しかし、%のキーコードも37なので、これは問題を作り出しています。%記号を許可したくありません。
両方のキーコードが37なので、どのように%と左矢印キーを区別することができますか教えてください。
から詳細については、こちらをご覧ください。例:
$('#test').keypress(function(oEvent) {
if (oEvent.charCode == 37) {
return false;
}
});
jsfiddleも参照してください。
=== === UPDATE追加のInternet Explorerのサポートについては
:
$('#test').keypress(function(oEvent) {
var iCode = typeof oEvent.charCode == 'number' ? oEvent.charCode : oEvent.keyCode;
if (iCode == 37) {
return false;
}
});
はまた、このjsfiddleを参照してください。
検証のためにキー入力を制限しないでください。人々はそれを克服するためにコピー/ペーストすることができます。
あなたは入力を検証するためにRegexを使用する必要があります。あなたはそれが37ではないのです「左arrow'キーのために、文字コードは37である「パーセント」キーを押すと
は https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExpkeypressの検証の代わりに正規表現ではなく、onchange、onblur、onsubmitのいずれかです。 (もちろん、変更/サブバリデーションにregexを使うことはできますが、そうする必要はありません) – nnnnnn
ユーザーがフォームを送信した後でユーザー入力を検証する必要があります。データがサーバーに送信される前に、フォームの "onsubmit"属性が実行される関数を記述するか、フォームアクションを "action = 'javascript:someFunction()'に設定することができます。キーストロークを許可しないと、ユーザーインターフェイスはエンドユーザーにとってより複雑で煩わしくなり、xss攻撃や注入攻撃のセキュリティリスクが発生します。無効な場合はエラーメッセージを返し、サーバー側でもう一度データの検証を行い、データをサニタイズすることをお勧めします。
SQL生成の目的で入力をサニタイズしようとしているようです。私はあなたがそれについて知らないことを示唆しているのではなく、友好的なリマインダ - サーバ側でも同じロジック**を適用する**。 –
「文字のみ」はどういう意味ですか? "%"は文字です。 「英数字だけ」という意味ですか? – nnnnnn
はい、英数字を意味します。 –