テキストボックスの初期値に関する質問

このQ&Aのポイント
  • テキストボックスの初期値について質問があります。
  • 特定の条件下でテキストボックスに入力された内容がサーバーに登録されるかどうかについて知りたいです。
  • 初期値が設定されない場合、NULLが設定されるのかどうか迅速に回答をお願いします。
回答を見る
  • ベストアンサー

登録した後のデータについて

以下のようなプログラムで、テキストボックスの初期値に「あいうえお」を設定しておきます。「書く」を選択してテキストボックスに記入し、「登録」をクリックすると、サーバーの方にテキストボックスに書かれたものが登録されますが、「書かない」の方を選択すると、テキストボックスへの入力が無効になり、半透明になりますが、この際「登録」をクリックすると、サーバーの方には何が登録されたのでしょうか? 自分の考えだと、初期値の「あいうえお」は設定されずにNULLが設定されるのではないかと思うのですが・・至急回答をお願い致します。 <HTML> <head> <title></title> <SCRIPT language="JavaScript"> <!-- function kaku(){ if( document.form1.radi[1].checked == true) document.form1.text1.disabled = false; else document.form1.text1.disabled = true; } //--> </SCRIPT> </head> <body onLoad="kaku()"> <form name="form1"> <INPUT type="radio" name="radi" value="no" checked onBlur="kaku()">書かない<br> <INPUT type="radio" name="radi" value="yes" onBlur="kaku()">書く <p> 名前<INPUT type="text" name="text1" size="30" value="あいうえお" maxlength="16" disabled> <p> <INPUT type="submit" value="登録" name="submit1"> </form> </body> </HTML> ※このソースは試しに書いてみたので、実際には登録されないと思います・・・

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

  • ベストアンサー
  • urusyun
  • ベストアンサー率52% (10/19)
回答No.2

>以前これらのソースのようなプログラムを使って確認をしたのですが、「書かない」の方を選択して登録をし、また設定の画面に戻ったら、初期値も何も表示されていない状態だったので混乱していまして・・・ 少し確認させていただきたいのですが、 何かサーバーサイドの技術を利用されているのでしょうか(CGIとか)? それから、「確認画面」とは、どのようなものなのでしょうか? 送信されたformの中身をそのまま表示するようなものなのでしょうか? #1で記したとおり、サーバーサイドで何か処理を行わない限り、サーバー側に登録されます。 (この、「登録」の意味も、実はよくわからないのですが…。サーバー側でデータを受け取る、と意味で解釈していたのですが、違うのでしょうか・・・) よろしければ、サーバー側で受け取る仕組みの有無、また、登録は何をさしているのか(データベースに登録など)、また、設定画面とはどのような画面なのか(設定情報をサーバーで編集/送信情報をそのまま画面に表示など)、お教えいただけないでしょうか? 今の情報では、何をどうしたら、どうなった、という情報が乏しいようです…。申し訳ありません。

tohiyo
質問者

お礼

お返事遅れてすみません。なんとなく解決したので、ありがとうございました。

その他の回答 (1)

  • urusyun
  • ベストアンサー率52% (10/19)
回答No.1

回答からいうと、登録されます。 formのsubmitでは値(value)しか基本的にサーバー側に送信しません。 サーバー側で判断させるとすれば、radiの値(value値)で判断させるよりないと思います。 ここらへんのロジックは、サーバー側でどのようなものを利用しているか(一般的には、CGI/ASP/JSP…)によって変わってきます。 ちなみに、クライアント側で編集して送信する方法もあります。 その場合、ボタンはsubmitボタンではなく、通常のボタンとし、押下時に編集処理を行うfunctionを呼び出し、その最後にsubmitメソッドを実行する方法で行います。 ちなみに、disabled属性というのは、あくまで利用者側が「選択不可」になるだけで、値が無効になるわけではありません。 もっというと、disabled属性はあくまでクライアント側の、つまりHTMLの属性であり、つまりクライアント側のブラウザに、「選択不可だよー」という情報を教えているだけにすぎません。 (なので、disabled属性が理解できないブラウザでは単純に無視されます = 入力できる) もし、サーバー側の情報を見ることができる環境にあるのならば、一度その内容を見てみられたらいかがでしょうか?

tohiyo
質問者

補足

つまり、「書かない」を選択して登録をすると「あいうえお」が登録されていると解釈してよろしいのですね?以前これらのソースのようなプログラムを使って確認をしたのですが、「書かない」の方を選択して登録をし、また設定の画面に戻ったら、初期値も何も表示されていない状態だったので混乱していまして・・・

関連するQ&A

  • disabledの点で。

    このソースを開いて、更新ボタンをクリックすると、 2の方のテキストボックスが半透明になりますが、それは半透明にしないようにすることは可能なのでしょうか。 お願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • disabledの点で。2

    また同じソースでの質問なのですが、以下のようなソースで、1のテキストボックスに過去に入力したもの(プルダウンみたいに下がって出てくる履歴のようなもの)を選択すると、2の方の入力ができなくなります。履歴の数字を入れても2の方に記入できるようにするにはどのようにしたら良いのでしょうか。また、これらの処理を行うとき、onChange以外のものを使ってできるのでしょうか?大変困っております、よろしくお願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • セレクトボックスを無効に出来なくて困っています

    このサイトで拝見したソースを参考に、ラジオボタンで選択した項目以外のテキストボックスなどが無効になる仕組みの、以下のようなフォームを作りました。 <form method="POST" name="form01"> <script language="javascript" type="text/javascript"> <!-- function swDis() { fObj = document.form01; fObj.sentaku01.disabled = (fObj.namae[0].checked) ? false : true ; fObj.sentaku02.disabled = (fObj.namae[1].checked) ? false : true ; fObj.sentaku03.disabled = (fObj.namae[2].checked) ? false : true ; } //--> </script> <p> <input type=radio name="namae" value="AAA" onclick="swDis()" checked /> sentaku01 <select name="sentaku01" id="sentaku01"> <option>選択肢1</option> <option>選択肢2</option> <option>選択肢3</option> </select> <br /> <input type=radio name="namae" value="BBB" onclick="swDis()" /> sentaku01 <input type=text name="sentaku02" disabled /> <br /> <input type=radio name="namae" value="CCC" onclick="swDis()" /> sentaku01 <input type=text name="sentaku03" disabled /> <br /> <input type=radio name="namae" value="sentaku04" onclick="swDis()" /> sentaku04<br /> <input name="" type="submit" value="送信する" /> </p> </form> しかし、この方法ですと、最初にフォームが表示された段階ではセレクトボックスが生きてしまい、他のいずれかのラジオボタンをクリックしないとセレクトボックスがグレーアウトしてくれません。 フォームが表示された時点ですぐにセレクトボックスをグレーアウトさせる方法はないでしょうか? 対策をご存じの方がいらっしゃいましたらどうかよろしくお願い致します。

  • Firefoxのdisabledプロパティのバグ?

    複数のラジオボックスがあり、すべてのラジオボタンで 「YES」がチェックされた時にだけ、submitボタンが 有効になるようJavaScriptで制御できればと思ってます。 素人ながら以下のようなJavascriptにしたところ、 IEやSafari、Chromeでは意図した通り動作しましたが、 ただFirefoxのみボタンがdisabledになったまま有効になりませんでした。 解決策がわかる方がいらっしゃればご教授お願いできればと思います。 よろしくお願い致します。 <script type="text/javascript"> <!-- function check() { if (form1.radio1[0].checked && form1.radio2[0].checked && form1.radio3[0].checked) { form1.send.disabled = false; } else { form1.send.disabled = true; } } ; //--> </script> <form name="form1"> <input type="radio" name="radio1" value="1" >YES <input type="radio" name="radio1" value="2">NO <input type="radio" name="radio2" value="1">YES <input type="radio" name="radio2" value="2">NO <input type="radio" name="radio3" value="1" onClick="check()">YES <input type="radio" name="radio3" value="2">NO <input type="button" name="send" value="GO" onclick="location.href='hogehoge.html'" disabled="disabled"> </form>

  • ラジオボタンで入力項目の可・不可を切り替える方法

    雑誌やネットを調べ、ラジオボタンで入力項目の可・不可を切り替える JavaScriptを見つけたのですが、思うように動作しません。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>Sample</title> <script type="text/javascript"> <!-- function radioChange() { if(document.form1.radioSelect[0].checked == true) { document.form1.04text.disabled = false; document.form1.04text.style.backgroundColor='#FFFFFF'; document.form1.05text.disabled = false; document.form1.05text.style.backgroundColor='#FFFFFF'; document.form1.06text.disabled = false; document.form1.06text.style.backgroundColor='#FFFFFF'; document.form1.07text.disabled = true; document.form1.07text.style.backgroundColor='#D4D0C8'; document.form1.08text.disabled = true; document.form1.08text.style.backgroundColor='#D4D0C8'; document.form1.09text.disabled = true; document.form1.09text.style.backgroundColor='#D4D0C8'; } else if(document.form1.radioSelect[1].checked == true) { document.form1.04text.disabled = true; document.form1.04text.style.backgroundColor='#D4D0C8'; document.form1.05text.disabled = true; document.form1.05text.style.backgroundColor='#D4D0C8'; document.form1.06text.disabled = true; document.form1.06text.style.backgroundColor='#D4D0C8'; document.form1.07text.disabled = false; document.form1.07text.style.backgroundColor='#FFFFFF'; document.form1.08text.disabled = false; document.form1.08text.style.backgroundColor='#FFFFFF'; document.form1.09text.disabled = false; document.form1.09text.style.backgroundColor='#FFFFFF'; } else { document.form1.04text.disabled = true; document.form1.04text.style.backgroundColor='#D4D0C8'; document.form1.05text.disabled = true; document.form1.05text.style.backgroundColor='#D4D0C8'; document.form1.06text.disabled = true; document.form1.06text.style.backgroundColor='#D4D0C8'; document.form1.07text.disabled = true; document.form1.07text.style.backgroundColor='#D4D0C8'; document.form1.08text.disabled = true; document.form1.08text.style.backgroundColor='#D4D0C8'; document.form1.09text.disabled = true; document.form1.09text.style.backgroundColor='#D4D0C8'; } } //--> </script> </head> <body onload="radioChange()"> <form action="" method="post" name="form1"> <table> <tr> <td> <input name="radioSelect" type="radio" onclick="radioChange()" value="1" /> 国内旅行 <input name="radioSelect" type="radio" onclick="radioChange()" value="0" /> 海外旅行</td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td> 国内編:<br /> 希望地 <input type="text" name="04text" /> <br /> 希望日: <input type="text" name="05text" /> <br /> 乗り物: <input type="text" name="06text" /> </td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td>海外編:<br /> 希望地 <input type="text" name="07text" /> <br /> 希望日: <input type="text" name="08text" /> <br /> 乗り物: <input type="text" name="09text" /> </td> </tr> </table> </form> </body> </html> テキストボックスの「name」を、英字から始めれば解決するのですが 事情があり、nameを数字で始める必要があります。 この解決方法を教えていただけませんでしょうか。 よろしくお願いいたします。

  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • ラジオボタンの選択で解答・点数を表示する

    10問のテストを作成しています。 (1)選択肢はラジオボタンで3択(正解は10点、その他0点) (2)採点をクリックすると、テキストボックスに○×の結果を出し、もう一つ別のテキストボックスに×の場合は正しし解答を表示 (3)アラートで「あなたの点数は~~点」と出す (4)FORM1.2のSCOREに点数を表示 以上のようにしたいと思い、下記のように作りました。 まだ初心者のため、長々と同じことを書くことしか分からないので、もっと簡単にまとめられる方法がありましたら、教えてください。 よろしくお願いいたします。 function dispscore() { var score=0; if (document.form1.q0[0].checked) { score += 10; document.form1.r0.value = "○"; } else{ document.form1.r0.value = "×"; document.form1.a0.value = "ナイル川"; } if (document.form1.q1[2].checked) { score += 10; document.form1.r1.value = "○"; } else{ document.form1.r1.value = "×"; document.form1.a1.value = "バチカン市国"; } alert("点数は " + score + " 点 です "); document.form1.score.value=score document.form2.score.value=score } ------------------------------------------------------------ <INPUT type=radio name="q1" value="10">ナイル川 <INPUT type=radio name="q1" value="0">ミシシッピー川 <INPUT type=radio name="q1 value="0">アマゾン川> <INPUT size="3" name="r1" type="text"> <INPUT size="25" name="a1" type="text"> <INPUT type=radio name="q2" value="0">バルカン市国 <INPUT type=radio name="q2" value="0">バルタン市国 <INPUT type=radio name="q2" value="10">バチカン市国 <INPUT size="3" name="r2" type="text"> <INPUT size="25" name="a2" type="text">

  • 他フォームの入力データの引継ぎ

    入力フォームを2つ用意し 第1フォームの入力欄の1部を第2フォームの入力欄のデータとして submitさせたいのですが <INPUT TYPE="radio">と<SELECT>の入力値がうまく引継げません。 下記のようなJavaスクリプトとHTMLなのですが Javaスクリプトで「value」を=にすると 「radio」のほうはundefin、 「SELECT」で複数選択した場合は、一つ目の選択肢のみしか 引継げませんでした。 Javaスクリプトでうまくいく方法がありましたら ご教示ください。 ----Javaスクリプト-------------------------------- function aaa() { document.FROM2.A.value = document.FROM1.A.value; document.FROM2.B.value = document.FROM1.B.value; document.FROM2.C.value = document.FROM1.C.value; document.FROM2.submit(); } ----HTML-------------------------------- <FORM NAME="FROM1" METHOD="POST" ACTION="***"> <SELECT NAME="A" MULTIPLE> <OPTION VALUE="aa">セレクトa <OPTION VALUE="bb">セレクトb <OPTION VALUE="cc">セレクトc <OPTION VALUE="dd">セレクトd </SELECT> <INPUT TYPE="radio" NAME="B" VALUE="" CHECKED>選択なし <INPUT TYPE="radio" NAME="B" VALUE="1" CHECKED>ラジオ1 <INPUT TYPE="radio" NAME="B" VALUE="2" CHECKED>ラジオ2 <INPUT TYPE="text" NAME="C"> <INPUT TYPE="text" NAME="D"> <INPUT TYPE="submit" NAME="OK_BTN" VALUE="OK"> </FORM> <FORM NAME="FROM2" METHOD="POST" ACTION="***"> <INPUT TYPE="hidden" NAME="A"> <INPUT TYPE="hidden" NAME="B"> <INPUT TYPE="hidden" NAME="C"> <INPUT type="button" onClick="JavaScript:aaa();" name="OK_BTN" value="OK"> </FORM>

  • テキストボックスを無効にすると値が取得できない

    javascriptでこのようにテキストボックスを無効に してフォームを送信するとphp側でvalueの値が取得できないのですが、入力無効にすると valueは送られないんでしょうか? <form> <input type="text" id="sample" name="sample" value="値" /> </form> スクリプト .document.getElementById('sample').disabled = true; valueにはphpで値をセットし、それをテキストボックスで編集できないようにして 値を飛ばそうとしたのですがテキストボックスのvalueの値が来てないようです。 自分なりに考えたんですが、送信する瞬間だけ(submitボタンが押された時) テキストボックスを有効に戻すようにコードを書いているのですが これ以外で何かありますか? ---このように対処--- <form onsubmit="return disb()"> <input type="text" name="sample" value="値" /> </form> スクリプト document.getElementById('sample').disabled = true; function disb(f){ f.sample.disabled = false; }

  • 同じ作業を複数させる場合

    ちょっとタイトルのつけ方が下手でしたが、やりたいことはこんな感じです。 <FORM name="f1"> <INPUT type="text" name="t1" onblur="document.f1.t1a.value=this.value,document.f1.t1b.value=this.value.length;"> <INPUT type="text" name="t1a"> <INPUT type="text" name="t1b"> <FORM> と、このようなフォームをつくり、t1に半角文字を入力した際にt1a、t1bに入力された文字と その文字数を書き出すようにしたいのですが、これが複数あった場合にうまく省略する方法はないものか? と思い質問させていただきました。仮に、 <FORM name="f1"> <INPUT type="text" name="t1" onblur="document.f1.t1a.value=this.value,document.f1.t1b.value=this.value.length;"> <INPUT type="text" name="t1a"> <INPUT type="text" name="t1b"> <INPUT type="text" name="t2" onblur="document.f1.t2a.value=this.value,document.f1.t2b.value=this.value.length;"> <INPUT type="text" name="t2a"> <INPUT type="text" name="t2b"> <FORM> と、このような場合で10個も20個も同じ入力欄があった際に最もスクリプトを省略するには どのようにしたらいいのかがわかりません。 同じことを何度も繰り返し書くのは非効率に思えてならないのでどなたかいい方法をご存知の方の 知恵をお借りしようと思った次第です。よろしくお願いします。

専門家に質問してみよう