人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptについての質問です。

入力フォーム(inputやtextarea)に、禁止文字が記入された場合
そのフォーカスが外れた時点で自動的に書き換えるようにしたいと考えています。

参考になるサイトやサンプルコードを示して頂ける方、
宜しくお願いします。

書き換え例)
'→’
<→<

jsが動かない場合は入力できてしまいますが、それはそれで構いません。

●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript js コード サイト フォーカス
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント

下記ページの「フォーカス移動時のイベント/フォーカスの移動」の項を参照してみてください。

他にも色々なイベントについて書かれていますので参考になるかと思います。

一番簡単な JavaScript

◎質問者からの返答

ありがとうございます


2 ● y-kawaz
●27ポイント

blurというフォーカスが外れたというイベントがありますので、そのタイミングでvalueを書き換えてやればよいと思います。

<input onblur="this.value=this.value.replace(/</, '<');" />
<textarea onblur="this.value=this.value.replace(/</, '<');"></textarea>

この例では onblur に簡単に書いてしまっていますが、色々な禁則文字の置換処理をする関数を適当に作ってやればいいでしょう。

◎質問者からの返答

ありがとうございます!


3 ● GoldenDawn
●26ポイント
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <link rel="stylesheet" type="text/css" disabled="true" href="./test.css" id="mycss" />
 <style type="text/css">
 </style>
 <script type="text/javascript">
 <!--
 function replaceChars(ta) {
 var table = {
 '\'' : '’',
 '"' : '”',
 '<' : '<',
 '>' : '>',
 '&' : '&'
 } ;
 var keys = '' ;
 for (a in table) keys += a ;
 var rexp = new RegExp('([' + keys + '])', 'g') ;
 ta.value = ta.value.replace(rexp, function($1) { return table[$1]; }) ;
 }
 //-->
 </script>
 </head>

 <body>
 <form>
 <input type="text" onBlur="replaceChars(this);" />
 <textarea onBlur="replaceChars(this);"></textarea>
 <input type="submit" />
 </form>
 </body>
</html>
◎質問者からの返答

ご丁寧にありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ