• ベストアンサー

value文のないInputタグ

Inputタグの内容を送信したいのですが、 例えば、フォームF1のテキストエリアT1に、 document.F1.T1.value = "テスト"; として、JavaScript側から値(value)を指定します。 この場合、 <form method="post" name="F1"> <input type="text" name="T1"> </form> とするだけで、ブラウザに、「テスト」と表示させられますよね。 しかし、Inputタグの中に「value」の値が無いため、 他のURLに、テキストエリア「T1」の内容を送信することができません。 このようにJavaScript側から値(value)を指定したInputタグの値を送信する方法について教えてください。

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

  • ベストアンサー
noname#199778
noname#199778
回答No.2

フォーム送信をしたいのでしょうか、それとも何か別の動作を期待しているのでしょうか? フォーム送信をしたいという内容であれば、JavaScriptからvalue値を渡したinput要素でも、フォーム送信時にはJavaScriptから渡されたvalue値を送信すると思うのですが、いかがでしょうか? とりあえず、こちらのケースでしたら、下記ソースを使ってテストしてみるのが良いと思います。 <form action="#" method="get" name="F1"> <input type="text" name="T1"> <input type="submit" value="送信"> </form> <script type="text/javascript"><!-- document.F1.T1.value="test"; //--></script> 下記のソースをHTML文書に入れて、上記のフォームのサブミットボタンでフォーム送信を行い、その次のページのURL欄を確認してみて下さい。 上記のソースのフォームを送信すると、method="get"ですので、アドレス欄のURLに続けて、フォームの送信内容が追記されます。 もしアドレス欄に「(そのページのURL)?T1=test」と「?T1=test」の文字が出ているようであれば、JavaScriptでvalue値を設定したinput要素の値も送信されていることが確認できるでしょう。 input要素のタグの記述自体にvalue値を設定していなくとも、そのinput要素がもつ値を送信できないということにはならないと思いますが、このあたりはいかがでしょうか。 もしJavaScriptからvalue値を設定したinput要素のフォーム送信がうまくいっていない場合は、そのinput要素を含むフォームが正常にサブミットされているのか、受け手側のCGIなどが正常に値を取得できるように設定できているのか、あるいは送信内容にShift_JISなどが抱える2バイト目の文字の問題などが含まれていないのかどうか、そのあたりを別に確認する必要があるのではないかと思います。 参考になれば… 見当違いでしたら、ごめんなさい。

quick-nono
質問者

お礼

lead1976さん、こんにちは。 確かにget送信で、URL欄に送信できますね。 これは知りませんでした。 最初の解答のお礼欄にも書いたのですが、 このURLをVBScript側から取得する方法がわかれば、 今回の目的は達成されます。 方法について、いろいろ調べてみます。 ありがとうございます。

quick-nono
質問者

補足

補足します。 >VBScript側から取得... これは、ASP(アクティブサーバーページ)の VBScriptのことです。

その他の回答 (1)

noname#10926
noname#10926
回答No.1

↓こちらは参考になるでしょうか? http://www.openspc2.org/reibun/javascript/sub_window/033/index.html

参考URL:
http://www.openspc2.org/reibun/javascript/sub_window/033/index.html
quick-nono
質問者

お礼

doconimoさん、こんにちは。 参考URLを見ました。 確かに親ウィンドウから子ウィンドウに値がわたっています。 しかし、送信とは少し違うようです。 補足になるのですが、 JavaScriptで指定したInputタグの値を VBScript側で扱いたいのです。 通常、JavaScriptで値を入れたInputタグの値を VBScript側から参照する方法がないため、 いったん別URLに”送信”させて、 VBScriptでフォームの値を受信させたいと思っています。 いろいろ調べてみます。 ありがとうございます。

関連するQ&A

  • inputタグのnameとvalue属性について教えてください。

    inputタグのnameとvalue属性について教えてください。 <label><input type="radio" name="性別" value="男" />男</label> <label><input type="radio" name="性別" value="女" />女</label> という風にformの内容は「name:valueで1セット」として送信されると思っていました しかしxhtml1.1ではname属性が廃止されたと思います。 xhtmlではvalueだけでデータを送信するのでしょうか? それとも、form内のname属性は例外でしょうか?

  • 【htmlタグ】inputタグの書き方について

    現状は <input type="text">のテキスト入力エリアが存在します。 それを<form>タグで囲い、 <input type="button">のボタン押下にてform内容を送信していますが、 ボタンではなく、<a>タグのように、ハイパーリンクのような見た目にしてform内容を送信したいです。 どのように修正すればよろしいのでしょうか。宜しくお願いします。

    • ベストアンサー
    • HTML
  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

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

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • formタグのvalue="" に代入される文字列をsubmitボタン

    formタグのvalue="" に代入される文字列をsubmitボタンが押されたときに Javascriptでlocation.hrefで現在のURLを判定して 条件分岐してformタグのvalue="" に "A" や "B" といった 文字列を代入したいと考えてます。 現在下記のタグを書いているのですが、submitボタンが押されたときに パラメータにvalueの値が代入されず、困ってます。。。 タグの記述に間違いがあると思うのですが、ご指摘いただけないでしょうか? ■現在のタグ 1.Javascript側 <script> <!-- function check() { if(location.href.startsWith('http://www.AAA.com/AAA/')){ document.exp.categoryII.value = "A"; }else if(location.href.startsWith('http://www.AAA.com/BBB/')){ document.exp.categoryII.value = "B"; } return true; } // --> </script> 2.formタグ側 <form onsubmit="return check()" name="exp" action=""> <input name="gen" value="6" type="hidden" /> <input name="categoryII" value="" type="hidden" /> <input name="button" value="検索" type="submit" /> </form> よろしくお願い致します。

  • 指定のinputに入力

    恐れいります。 <form action="./xxx.cgi" method="POST"> <input type="text" name="name1"> <input type="text" name="name2"> <input type="text" name="name3"> <input type="text" name="name4"> <input type="text" name="name5"> <input type="submit" value="送信"> </form> と、5つの入力欄があり、別ウィンドウから、指定の場所に代入することは可能でしょうか。例えば、name1のエリアに、別ウィンドウからformで「test」という文字を送信して入力する感じです。 よろしくお願いします。

  • inputのvalueを変数として使うには

    下記ソースのaタグ内map.phpのパラメータ({緯度}・{経度}の部分)にinputで入力した値を渡したいので すが、どうすれば良いでしょうか? <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php?lat={緯度}&lng={経度}">マップを表示</a> </form>

  • input type="file"のvalue監視

    input="file"のvalue値が変更されたら別のテキストフィールドに表示するというScriptを書いたのですが動作してくれません。 input="file"ではなく普通のテキストフィールドならば動作します。 fileフィールドでは動作しないのでしょうか。それとも書き方がまずいのでしょうか。 以下、ソースです。 <html> <head> <title>test</title> <script type="text/javascript" src="/javascript/prototype.js"></script> </head> <body> <form action="" enctype="multipart/form-data" method="post"> <input id="file_test" name="file_test" type="file"> <br> <div id="result">表示</div> <script type="text/javascript"><!-- window.onload = function() { new Form.Element.Observer('file_test', 1, function(element, value) { document.getElementById('result').innerHTML = value; }); } //--></script> </form> </body> </html> よろしくお願いします。

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

    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>

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

    HTML上にinputタグが複数あって、その値をJavascriptで配列として受け取るコーディングをしています。 例えばこんな感じで・・・ 【サンプル1】 <form method="post" action="***.cgi" name="form1" onsubmit="return valueCheck(this);"> <input type="hidden" name="wData" value="aaa"> <input type="hidden" name="wData" value="bbb"> </form> function valueCheck(wForm) { document.write('wData='+wForm.wData[0].value); document.write('wData='+wForm.wData[1].value); } ただ、inputが1つしかない時もあるのですが、そのときの値が配列で受け取れません。 下記のように修正すると動くので、配列じゃないただの値だと判断されているようです。 【サンプル2】 <form method="post" action="***.cgi" name="form1" onsubmit="return valueCheck(this);"> <input type="hidden" name="wData" value="aaa"> </form> function valueCheck(wForm) { document.write('wData='+wForm.wData.value); } inputの値がいくつあるのかは都度変わるので、1つの時でも配列で処理したいのですが どのように記述すればいいのでしょうか。

専門家に質問してみよう