• ベストアンサー

HTMLのinputタグに入力された文字列の中にHTMLのタグが

HTMLのinputタグに入力された文字列の中にHTMLのタグが 含まれたらjavascriptでalertを出すようにしたいのですが、 どのようにしたらよいかお分かりの方いましたら、 どうか教えてください。 お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

無効化するのが目的ですか。 javascriptでやるとけっこう面倒そうですね。 こつこつコーディングすればなんとかなりそうですが... もしPHPを使用可能ならば、いったんPHPにおくってしまうとか PHPなら便利な関数たちがあります。 htmlspecialchars(),htmlentities(),html_entity_decode(),addslashes(),stripslashes()... javascriptでも、そんなスクリプトを探せば、いきなり見つかりました。

参考URL:
http://www.google.co.jp/search?hl=ja&source=hp&q=javascript+htmlspecialchars%28%29&lr=&aq=f&aqi=&aql=&oq=&gs_rfai=

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

alertを出すだけでフォーム送信のキャンセルとかはしなくていい? alertではなく実体参照に置き換えて無効化するのではダメでしょうか? どういった理由でHTMLタグでalertを出したいのでしょうか? 単純に質問どおりのサンプルコードを書く事も不可能じゃないけど、どこまで考えて出た質問かわからないのでもう少し詳しく教えてください。

idaira
質問者

お礼

ありがとうございます。 フォームの送信もキャンセルします。 タグを拒否したいのは、テキストボックスの内容を遷移先画面に で表示するときにタグが書かれているとレイアウトがくずれたりする からです。 タグを無効化してくれるなら、その方法で回避してもよいです。 テキストボックスに入力された内容を実体参照する方法はどうやって やるのですか? お手数ですが、どうぞお願いいたします。

関連するQ&A

  • HTML?JavaScript?  INPUTタグ内の文字をハイライト

    HTML?JavaScript?  INPUTタグ内の文字をハイライトさせたい 下記画像のように、formタグ中にある、Inputタグ内の文字をそれぞれカラフルにハイライトさせたいのですが、その方法が分かりません。HTMLかJavaScriptを使えばできるのかも分かりません。 どのようにすれば良いかどなたか教えていただけないでしょうか?宜しくお願い致します。 なお、下記のようにやってはみたものの、submitでタグも送信してしまいますし、タグがそのまま表示されてしまい、イメージする様にはなりませんでした。 <form action="~"> <input value="<span style=background-color:#ffff00>Input</span> <span style=background-color:blue>文字</span> <span style=background-color: pink>ハイライト</span>"> <input type=submit> </form>

  • <input> タグについて

    HTML内で、複数の<input>タグを持つフォームを使ってデータを入力し、それをPHPプログラムに送るものを作っています。 ある<input>タグの入力が終わった後にリターンキーを押すと、まだ他にも入力したいのがあるのに、すぐにPHPプログラムに飛んで行ってしまいますが、これを、submit ボタンを押したときにだけ飛んでいくようにすることは可能でしょうか? もし可能なら、どのようにするのでしょうか? 詳しい方どうぞ教えてください。お願いいたします。

    • ベストアンサー
    • PHP
  • HTMLタグの中に文字参照は書いても良い?

    文字列中のHTMLタグを文法チェックする正規表現を考えています。 HTMLのバージョンは4.01 Transitionalを想定しています。 悩んでいるところが文字参照の&nbsp;でして、これはタグの中でも 空白を表すのかどうかという点です。 つまり、以下のタグはタグとして正しいかどうかということです。 (例1) <p&nbsp;id="hoge">aaaaa</p> (例2) <p &nbsp; id="hoge">aaaaa</p> ブラウザでタグとして認識されないので、恐らく誤りなのかなと 思っており、The W3C Markup Validation Serviceや Another html-lint GatewayでもNGと指摘されますが、理由を 仕様として把握したいと考えています。 なんとなく、漠然と仕様上書けないような気はしているのですが、 そのエビデンスがほしいのです。 「この仕様にこう書いてある。だから書けない」と言えれば よいのですが、その在り処がお分かりになる方、ぜひ教えて頂けますか。

  • HTMLのinputタグ数が変わる場合のjavascript処理

    パターンA ~HTML~ <input type='text' name='a[]'> <input type='text' name='a[]'> ~JavaScript~ var n = document.form1.elements["a"][0].value ; var n = document.form1.elements["a"][1].value ; パターンB ~HTML~ <input type='text' name='a[]'> ~JavaScript~ var n = document.form1.elements["a"][0].value ; ---(1) パターンAではエラーが出ないのですが、パターンBでは(1)のところでエラーになってしまいます。 【elements["a"][0]】の部分を【elements["a"]】とすればエラーは出ません。 どうやら、inputタグが1つしかない場合は、Javascriptでは配列として認識しないようです。 できれば、inputタグが1つの場合でも複数の場合でも、同じJavascriptコードを使いたいのですが、何か良い方法はありますか?

  • INPUTタグ disabledでテキストの色を通常の黒に

    HTMLのテキストボックスで、コピーは可能で、入力不能の状態にしたい。 (計算式の答えをボタン入力で入れるため) そのため、INPUTタグでdisabledにした。 reasonlyだと、コピーが出来ないため。 ただ、disabledだと、文字が灰色になってしまいます。 それを防ごうと、styleオプションで、文字色をしようとしたがうまくいきません。(colorなどで) 方法を教えてください。 (javascriptしか、無理な場合は、ソースを教えてください)

    • ベストアンサー
    • HTML
  • HTMLタグ

    NINJAでアクセスカウンターを入力したいのですが HTMLタグで入力せよと指示がでます 方法の指示を頼みます。タグなんて知りませんのでよろしく。打ち込む文字を願います

  • HTMLタグ内の文字の置き換え

    <input type="radio" name="XXXXX" value="○○"> といったタグがございまして、value=のあとの""の中身だけ任意の文字列に置き換えたいのです。 しかも、"○○"の文字のあとには数字がついておりまして、"○○1"、"○○2"、、、などとなっておりますが、1や2の数字はそのまま変更せず、文字列のみ置き換えたいのですが可能でしょうか。 編集-置換えを使用しても設定がいまいち分からず、うまくいきません。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • リロードせずにHTMLタグ出力(innerHTML以外の方法で)

    初めまして。 下記の条件で、HTMLをリロードせずにHTMLタグを出力する方法をご存知の方がいらっしゃれば、教えていただけないでしょうか。簡単に言うと、innerHTMLのようにHTMLをリロードせずに動的に出力する方法が知りたいのです。(innerHTMLはこちらの事情で使えません) ・IE6限定でよい ・JavaScript,CSS,DOMはOK ・DynamicHTMLはNG(innerHTML等) ・一度HTMLを読み込んだ後、動的にHTMLタグを出力する ・出力する文字列の中にタグがあり、これが有効になるようにしたい (例:たとえば、動的にHTNLタグである<b>hogehoge</b>とかを出力して、ブラウザ上にはhogehogeという文字列が太文字で表示されるようにしたいのです) ※試してみたがだめだった方法 1.document.write()による出力 ⇒これをするとページがリロードされてしまうので条件にあわず 2.getElementById('hoge')で、<div id='hoge'>&nbsp;</div>のnodeValueに文字列を代入して出力 ⇒これをしても、HTMLタグではなく文字列としてHTMLタグが出力される。 よろしくお願いします!

  • 埋め込みタグをinput type内で使いたい

    端末IDを取得しその結果を<div id="View4"></div>で表示できるjavascriptがあります。 これを使用して端末IDをサーバー認証に使うようにしたいと考えています。 現在の問題点 HTML上で、 uid="<div id="View4"></div>" と記載すると、端末上では、 uid=" 01967118-614B-4814-912A-8112F7DDA2E " のように、ちゃんと端末IDを拾っていることが分かります。但し、上記のように改行がされており、uid="01967118-614B-4814-912A-8112F7DDA2E" のようには表示されません。 さらに、<input type="text" id="<div id=\"View4\"></div>">のようにinput typeの中で表示しようとすると、<div id=\"View4\"></div>を文字列として読み込んでしまい、ユーザーIDを表示することができません。 当方がやりたいことは <input type="text" id="01967118-614B-4814-912A-8112F7DDA2E"> の形で表示させることにより、データベースに端末IDをインプットをさせることです。 テキストエリアの改行コードを取り除くには正規表現を使い「文字列..replace(/[\n\r]/g,"")」\で対応可能ということは分かったのですが、<div id=\"View4\"></div>を文字列として読んでしまうことや、埋め込みタグに対する正規表現使用方法が分かりません。 お助けいただきたくお願いいたします。

  • VB.NETで<Input>タグ、<textarea>タグに値を代入するには?

    VB.NET+Javascriptでプログラミングしているのですが、HTMLに<input>タグ(type=text)、<textarea>タグがありまして、これに値を代入する方法がわかりません。 おしえてくださいーー ※該当タグにJavascriptを使うので、VBのテキストボックスはつかえません><

専門家に質問してみよう