テキストフォームのチェックについて

このQ&Aのポイント
  • テキストフォームの内容チェックについて教えてください。
  • テキストフォームが書き換わった段階で実行することはできないでしょうか?
  • テキストフォーム内のURLが書き換わったら、その内容をチェックして、iframeにそのURLの画面を表示する方法について教えてください。
回答を見る
  • ベストアンサー

テキストフォームのチェックについて

テキストファームの内容チェックについて教えてください。 下記コードで取得したURLをテキストフォームに表示させ「onclick」でiframeに画面を表示させています。 これを、テキストファームが書き換わった段階で、実行することは できないでしょうか? (テキストフォーム内のURLが書き換わったら、その内容をチェック して、iframeにそのURLの画面を表示する) <html> <form name="f1"> URL:<input type="text" name="url" size="60" value="" /> <input type="button" value="このURLへ移動" onclick="target_name=***.location.href=this.form.url.value"> </form> <script type="text/javascript"> function set_latlng() { document.f1.url.value="http://***.***.****" /script> 以上、宜しくお願い致します。

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

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.2

グーグルマップのURLは自動的に読み取るのではなく手動でよかったですかね? 自動で読み込んで別のものにリンクさせようとしたものの、セキュリティの問題でちょっと手が出せそうではなかったもので。 それとグーグルマップと他のフリーマップでは緯度経度の算出方法(たぶんグーグルは10進、gooとyahooは60進)だったのでリンクさせるにはその点も考慮が必要なようです。 マップのURLを変えると同時にiframe要素に反映させるのは、タイマーsetTimeoutで監視させることで簡単に実装ますが、ふたつのマップデータを同時に扱うため高速処理がいっぱいいっぱいでした。入力チェックはともかく、これの連携は遅さが目立って実用的じゃなかったです;; ひとまず適当に作ったHTMLを置いておきます。yahooマップのアドレスをgooマップのアドレスに変換し自動表示させるものです。 IE,NN,Firefoxで動作確認しました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict //EN"> <html> <head> <title>map test</title> <style type="text/css"> <!-- --> </style> <script language="JavaScript"> <!-- function setrun() { var tempstr; var tempint; var yahmap; var goomap; var earthN; var earthE; yahmap = document.getElementById("strurl").value; //入力チェック。ちょっと変数名わるいやね if ( yahmap.indexOf("lat=") == -1 || yahmap.indexOf("lon=") == -1 ) { alert("入力内容が怪しい"); return false; } //緯度経度取得 tempint = yahmap.indexOf("lat=") + 4; earthN = yahmap.substring( tempint , yahmap.indexOf( "&" , tempint + 2 )); tempint = yahmap.indexOf("lon=") + 4; earthE = yahmap.substring( tempint , yahmap.indexOf( "&" , tempint + 2 )); goomap = "http://map.goo.ne.jp/map.php?MAP=E" + earthE + "N" + earthN + "&ZM=11" document.getElementById("sakimap").contentWindow.self.location.href = goomap; return false; } // --> </script> </head> <body> <iframe id="gogmap" name="gogmap" src="ht tp://map.yahoo.co.jp/pl?lat=35.27.1.51&lon=139.38.7.68&sc=2&mode=map&type=scroll" height=600 width=600 scrolling=yes> この部分は iframe 対応のブラウザで見てください。 </iframe> <iframe id="sakimap" name="sakimap" src="ht tp://map.goo.ne.jp/map.php?MAP=E139.38.7.868N35.27.1.753&ZM=11" height=600 width=600 scrolling=yes> この部分は iframe 対応のブラウザで見てください。 </iframe> <BR><BR> <form id="theform" action="#" onsubmit="setrun();return false;"> Yahooの地図右上の「この地図のURL」を右クリックしてショートカットのコピーをし、それを下に入力しEnter key<BR> <input type="text" id="strurl" name="strurl" size="80" value=""> <input type="submit"> <form> </body> </html>

ken0109
質問者

お礼

benelli さん ご連絡が遅れてしまい申し訳ありませんでした。 Google Mapsの緯度経度を取得しテキストフォームに入力はできました。 ただ、マウス移動でテキストフォーム内のURLが変わるのですが、 この変更を自動的にチェックして実行というのはできませんでしたので、もう少し考えてみます。 document.getElementById("AAA").innerHTML = "経度=" + AAA_latlng.lng.toFixed(6) + "緯度=" +AAA_latlng.lat.toFixed(6);     document.f1.url.value="http://***/X="+AAA_latlng.lng+"&Y="+AAA_latlng.lat"

その他の回答 (1)

  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

<input type="text" name="url" size="60" value="" /> 試してませんがこれをこう変えてみたらどうですか? <input type="text" name="url" size="60" value="" onchange="target_name=***.location.href=this.form.url.value" /> それより「その内容をチェック」するところのそのチェック方法が分からなければどうしようもないんですが。 今一度必要な情報の整理をオススメします。問題すべての解決はそのあとかと。

ken0109
質問者

補足

benelli さん ありがとうございます。記述していただいスクリプトは試して みたのですが、エラーも何も出ず変化なしの状態でした。 また、説明が悪く申し訳ありません。 Google Mapsと連携し別の地図の同じ場所を表示するというものを 作成しています。 テキストフォームには、Goolge Mapsで取得した緯度と経度を変換し 遷移先のURLに埋め込んだものが表示されています。 このテキストフォームの内のURLは、Google Maps をマウスで移動 させると内容が書き換わります。 (http://http://***.***.****"​x=000.Y=222 がマウス移動で http://***.***.****"​ x=123、Y=345というようになります。) URLが書き換わったタイミングで、そのURLをiframeに表示させるという ことをおこないたいと考えています。 以上、宜しくお願い致します。

関連するQ&A

  • ■フォームのテキストで書かれた数字を受け取るにはどうすればいいのでしょうか?

    HTML内で <form> <input type="text" name="a" value="a"> <input type="button" name="b" value="b" onClick="zzz()"> <input type="text" name="c" value="c"> </form> 外部JavaScript内で function zzz() {  フォームのテキストaの中に打ち込んだ数字を受け取って、テキストcの中に表示させる関数 } 上記のようなことをしたいのですが(意味がないと言われてしまえばそうです^^;)やり方を教えていただけないでしょうか? あと、フォームの内容がよくわからないので、勉強できるサイトなどありましたら教えていただけないでしょうか? 現在わかっているのは、typeが形を作るってことと、onClickがボタンを押したときのことっていうだけです。 name valueとかまったく意味不明です。 最後に、ボタンをマウスでクリックしなくてもエンターキーを押すだけでクリックしたことになる方法を教えていただければ幸いです。 よろしゅうお願いします!

  • テキスト入力フォームをクリックしなくてもアクティブに

    テキスト入力フォームをクリックしなくてもアクティブにするjavascriptを教えてください。 下のスクリプトの間違っている箇所がわかりません。 フォームタグの閉じる位置でしょうか。 <form name=frm> <input TYPE=TEXT SIZE=20> <input TYPE=Button VALUE="検索" onClick='alert("仮")'> </form> <script language=javascript> //<!-- document.frm.passch.focus(); //--> </script>

  • フォームに表示される文字をセンタリングさせたい。

    Javascriptの初心者です。宜しくお願いします。 テキストエリアが2つあったとします。 1のテキストエリアにある値を入力してボタンを押すと、 2のテキストエリアに1で入力した値をそのまま表示させ、 尚且つ表示された値をフォーム内でセンタリングさせたいのですが どうすればよいのかわかりません・・・。 ご存知の方がいらっしゃいましたら教えて下さい。 どうぞ宜しくお願い致します。 <html> <head> <script language="JavaScript"> <!-- function my1() { a=document.form1.text1.value; document.form1.text2.value=a; } //--> </script> </head> <body> <form name="form1"> <input type="texterea" name="text1"> <input type="texterea" name="text2"> <input type="button" value="CLICK!" onClick="my1()"> </form> </body> </html>

  • フォームの動作についてお願いします!

    <FORM NAME="form1"> <INPUT NAME="text1" TYPE="text"> <INPUT TYPE="button" value="表示" onclick="daialog()"> </FORM> <script language="JavaScript"> <!-- function daialog(){  alert(form1.text1.value) ; } --> </script> ----------------------------------- と上のようにテキストボックスの中身をアラートで返すスクリプトが あるのですが、検索ページ(google等)のようにボタンを押さずとも、 エンターキーを押せばdaialog()が呼びだされるようにするには どうすればいいでしょうか。。。 <FORM>に関係がありそうなのでJavaScriptのカテゴリにじゃないかも しれませんが、どなたかよろしくお願いします!!

  • jqueryとテキストの取得フォーム

    フォームのラジオボックスの値を文字列としてテキストボックスに入れたいと考えています。 jqueryを使ってif分岐で長いものは書けるのですがもっとスマートにかけないかと考えています。 バリューの値を取れればと思っているのですが具体的な方法が思い浮かびません。 どなたかJQUERYが得意な方がおられましたらご教授願えませんでしょうか。 宜しくお願いします。 <script> function check1(){ $("#text1").val("Tシャツ"); } function check2(){ $("#text1").val("ロングシャツ"); } ・ ・ ・ </script> <form id="cse-search-box" action="http://google.com/cse"> <input type="hidden" name="ie" value="UTF-8" /> 袖丈 <input type="radio" name="a" onclick="check1();" value="Tシャツ" >Tシャツ <input type="radio" name="a" onclick="check2();" value="ロングシャツ" >ロングシャツ <input type="radio" name="a" onclick="check3();" value="キャミソール" >キャミソール パンツ <input type="radio" name="b" onclick="check4() value="ショートパンツ" >ショートパンツ <input type="radio" name="b" onclick="check5() value="チノパンツ" >チノパンツ <input type="radio" name="b" onclick="check6() value="ジーンズ" >ジーンズ <textarea id="text1" name="q" size="31" /></textarea> <input type="submit" name="sa" value="Search" /> </form>

  • 複数のテキストフォームに対しての出力

    javascriptを勉強中であり、至らぬ点があるかと思いますが質問させてください。 あるhtmlページに複数のテキストフォームがあり、そこにjavascript で for 文を使い 定型文の後に追番を付加したテキストを出力(表示)させたいと思っています。 個別のテキストフォームには出力ができるのですが、複数の指定となると イマイチわかりませんでした… (正しく動作しませんでした) 私の記述が悪いとは思いますが、どのように記述すればよいでしょうか? 知見をお借りできればと思います。 よろしくお願いいたします。 【希望】 サンプル1  テスト1 サンプル2  テスト2 サンプル3  テスト3 上記 ちなみに以下が抜粋構文です。 【html】 <input type="button" value="テストボタン" onclick="myTest()">   ←ここを押すとプログラム -省略- <form name="myForm1"> サンプル1  <input type="text" size="30" name="form1" value="" readonly><br> サンプル2  <input type="text" size="30" name="form2" value="" readonly><br> サンプル3  <input type="text" size="30" name="form3" value="" readonly><br> <input type="reset" value="クリア"> </form> 【javascript】 function myTest() { for (num = 1; num <=3; num++) { // document.myForm1.form1.value = "テスト" + num ; だったら表示できる document.myForm1.form[num].value = "テスト" + num ; } } ※「form[num]」の部分が悪いとは思っていますが…

  • ループで連続したフォームの値を読み込む

    こんにちは ループで苦労しています。 nameが数字で連続したフォームがいくつかあり、それをループで読み取りたいのです。私が作ったものは以下のものです。でもエラーになります。どこが悪いのかどなたかご教授ください。 <script> function ggo(){ for (i=1; i<=3; i++){ document.write(document.forms["myFORM"].elements["k"+i].value); }} </script> <form name="myForm"> <input type="text" name="k0"><br> <input type="text" name="k1"><br> <input type="text" name="k2"><br> <input type="button" value="hai" onClick="ggo()"> </form> それから、余談ですが以下のスクリプトはループを1回にするとkipをエラー無しで読み込んでくれますが、2回以上にするとエラー表示とともに1度しか読み込んでくれませんなぜなのでしょうか?ひとつの書き込みにに1つの質問が原則なのでこちらの質問に答えていただける方がいらっしゃればそれもとてもありがたいです。欲張ってすいません。 <script> function ggo(){ for (i=0; i<=2; i++){ document.write(document.myForm.kip.value); } } </script> <form name="myForm"> <input type="text" name="kip"><br> <input type="button" value="hai" onClick="ggo()"> </form> ↓参照しました↓ http://oshiete1.goo.ne.jp/qa820843.html

  • フォームの表示が消えてしまう・・・

    初歩的なことでつまづいております。 フォームを利用して「入力」フォームに文字を入れ、「入力!」ボタンを押すと「結果」フォームにその文字を表示させたいのですがうまくいきません。 やりたいことは、 1.「入力」フォームに文字を入れます(たとえば"123") 2.「入力!」ボタンを押します 3.すると「結果」フォームに"123"と表示させたいです  4.また、「入力」フォームにはそのまま"123"が表示されたままにしたいです なぜか下記の記述だとボタンを押した瞬間にすべてのフォームの文字表示が消えてしまいます。 これはどうしてなのでしょうか?すみませんがよろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"><!-- function calcButton() { var inputValue = document.calc.input.value; document.calc.result.value = inputValue; } //--></SCRIPT> </HEAD> <BODY> <FORM name="calc" action=""> 入力<INPUT type="text" size="5" name="input"><BR> 結果<INPUT type="text" size="5" name="result"><BR> <INPUT type="submit" value="入力!" onClick="calcButton()"> </FORM> </BODY></HTML>

  • テキストフォームの未入力チェック

    お世話になります。 Javascriptでテキストフォームの入力チェックを行っております。 テキストフォームにはDBから取得した値が入っており、その値を変更して更新できるプログラムを作ろうとしています。 テキストフォームが未入力だった場合に元の値を入れてPOSTリクエストを投げたいのですが方法が分かりません。 (よく見かける未入力だったらアラートを出すというのは出来るのですが・・・) 以下ソースの抜粋になります。 function check(){ for(i=0; i<document.iform1.length;i++){ if(document.form1.elements[i].value==""){ document.iform1.elements[i].valueに元の値を入れたい。 } } <form name="form1" action="updata.php" method="POST"> <input type="button" name ="save" value="更新" onClick="check()"> </form> 以上、ご教示よろしくお願いいたします。

  • テキストフォームのマウスの位置に記号を挿入したいです

    以下のタグでは、テキストフォームの最後に記号を追加していますが 任意の位置へ挿入できる機能にしたいです。 IEだと簡単に実現する方法はあったと思いますが、 FireFoxでも任意の位置に記号を挿入することはできるでしょうか? <form action="" name="fm"> マウスを好きな数字の間に置いて●を1つ挿入してください。<br> <input type="text" name="test1" value="1234567890"> <input type="button" onclick="fm.test1.value=fm.test1.value+'●'" value="●を挿入"> </form>

専門家に質問してみよう