jspのtextboxフォームにjavascriptの機能をつける方法

このQ&Aのポイント
  • jspのtextboxフォームにjavascriptの機能をつける方法を教えてください。
  • 値がフォームに入力されたとき、入力された値が100より大きければアラートを出す機能を実装したいです。
  • onchange()メソッドを使用して値の変更後の値を参照する方法について教えてください。
回答を見る
  • ベストアンサー

onChange()メソッド

 失礼致します。 質問させてください。 今jspのtextboxフォームにjavascriptの機能をつけようとしています。付ける機能は簡単に言うと、値がフォームに入力されたとき(もしくは入力されてフォーカスが外れたとき)、その値が100より大きければアラートを出す機能です。 // jsp <input type = text size="12" name="hi" value = <%= hi %> onchange="fast('<%=hi%>');"> // Javascript <script language="javascript" type="text/javascript"> function fast(hi) if (hi > 100 ) { alert("100以下で入力してください");   } しかしこのままだとテキストボックスの値変更前の値が比べられてしまいます。onblurにしても同じでフォーカスを当てる前の値が参照されてしまいます。スクリプトのほうでdocument.frm.hi.value= ・・と値を取得すればフォームがひとつの場合うまくいくのですが、複数個になるとフォームの指定に問題が出てきます。onchengeではなく、何か値を変更した後の値を参照できるような方法はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

×onchange="fast('<%=hi%>'); ○onchange="fast(this.value); functionの書き方とかもスペルミスが目立ちます。 気をつけてください。

javatea_1985
質問者

お礼

ご回答ありがとうございました。 スペルミスが原因のバグが出て何時間もなかされることがしばしばあります。 これは本当に痛いです。 気をつけたいと思います。 (エラーのときスペルミスも疑ってみるようにします。)

関連するQ&A

  • onChangeの使い方について教えてください。

    javascriptで困っています。助けてください。 テキストボックスに入力された値をonChangeで検出し、入力内容をチェックしようとしています。 テキスト入力後、テキストボックスからフォーカスを外せば、問題なく作動するのですが、 テキストを入力し、フォーカスを外さずに、そのまま送信ボタンを押すと、 チェック結果を待たずに、次のファイル(画面)に移ってしまいます。 多分、onChangeを使う上で、よく発生する問題かと思うのですが、 みなさん、どのように回避されているのでしょうか? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function check(){ alert('チェック'); } //--> </script> </head> <body> <form method="get" action="reg.php"> タイトル<br> <input type="text" name="title" onChange="check()"><br> <input type="submit" value="送信"><br> </form> </body> </html>

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

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

  • FireFoxでfocus()が上手く動かない

    javascriptを使って、 フォームのテキストエリアの入力文字数をチェックし、 オーバーしていれば、アラートを出し、テキストエリアにフォーカスを移動させる。 ようにしようとしています。 IEでは動いてのですが、FireFoxだと上手くフォーカスが移動してくれません。 どこがまずいのか、教えてください。 コード <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function checkText(aText) { if (aText.value.length > 1) { alert('サイズオーバーです'); aText.focus(); } } //--> </script> </head> <body> <form method="post" action="#"> <input type="text" name="fmTitle" onBlur="checkText(this)"> <input type="text" name="dummy"> </form> </body> </html>

  • onchangeイベントを強制的に発生させる

    お世話になります。 onchangeイベントをjavascriptで強制的に動作させたいと思っております。 発生させたい場合 ・ユーザーがtextボックスを入力 ・リンクボタンを押下した場合 簡単なことなのかもしれませんが、 ご教授よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <script type="text/javascript"> function change(){ alert('test'); } function update(){ document.getElementById('1').value = "update"; document.getElementById('1').onchange = change; } </script> <input id="1" type="text" value="1" onchange="change();"> <a href="javascript:update();">update</a>

  • html onchange

    下記のコードでf002は動きますが、f001が動きません。 scriptで作ったオプションメニューもonChangeが働くようにするには、いかがしたらよろしいでしょうか? <script language="JavaScript"><!-- function f001(){ if (document.test.s1.value==2) alert("2が入力されました"); } function f002(){ if (document.test.s2.value==2) alert("2が入力されました"); } var i,ht=[]; i=0; ht[i] = '<select onChange="f001()" id="s1" >'; for( var i=1; i<=5;) ht[i] = '<option value='+(i)+(i==1?' selected':'')+'>'+(i++)+'</option>'; ht[i] = '</select>'; document.write('s1 =', ht.join('')); // --></script> <form name="test"> s2 = <select onChange="f002()" id=s2> <option value=1 selected>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> </select> </form>

  • focus()が上手くいかない

    困っています、助けてください。 フォームのテキストボックスの入力された文字数をチェックし、 サイズオーバーなら、アラートを表示し、テキストボックスにフォーカスを移動させたい。 のですが、上手く動いてくれません。 コードは次の通りです。どこがおかしいのか?どうすれば改善できるのか? 教えてください。 <form method="post" action="#"> <input type="text" name="fmTitle" onBlur="checkText(this)"> </form> <script type="text/javascript"> <!-- function checkText(aText) { if (aText.value.length > 100) { alert('サイズオーバーです'); aText.focus(); } } //--> </script>

  • IE7のonChangeイベントを使用して入力チェック

    textフィールドのonchangeイベントでjavascriptの入力チェックを行い、エラー時はフォーカスをエラー項目に戻し、カーソルを移動できないようにしたいです。 --想定している動作 (1)test1_fieldに1以外の値を入力し、tabなどで移動する。 (2)javascriptのcheck1()でエラーチェック。エラー「test1_field NG」が表示され、カーソルがtest1_fieldに戻る。 再度、カーソルを移動しようとすると、(2)の動作を行う。 --実際の動作 IE6(XP+IE6sp2)では、以下のテストスクリプトで想定している動作をしていたのですが、IE7(Vista+IE7)では、return falseを返しても、test2_fieldにフォーカスが移動できてしまいます。 --テストコード <html> <script> function check1(obj){ if (obj.value==1){ return true; } alert("test1_field NG"); obj.focus(); obj.select(); return false; } function check2(obj){ if (obj.value==2){ return true; } alert("test2_field NG"); obj.focus(); obj.select(); return false; } </script> test1_field:<input type="text" name="test1_field" onchange="return check1(this)" >(1のみOK)<br><br> test2_field:<input type="text" name="test2_field" onchange="return check2(this)" >(2のみOK) </html> 記述等に間違いがあるのでしょうか? ご教授いたがければ幸いです。

  • JAVASCRIPTでINPUT

    HTMLとJAVASCRIPTとJSPを使ってシステム構築をしております。 --------------- <html> <head> <SCRIPT Language="JavaScript"> <!-- function send() { alert("<input type=text name=name2>"); } // --> </SCRIPT> </head> <body> <form onSubmit="send(); return false;"> <input type=text name=name1> <input type=submit> </form> </body> </html> --------------- 上記のコードでやりたいことは、 submitボタンが押されたときにJAVASCRIPTを呼び出し JAVASCRIPT上で文字を入力し次画面へ送信するような機能を作りたいと思っているのですが、本を見てもなかなか載っていません。 もしかしたらJAVASCRIPTだけではできないかもしれません。 JSPまたはPHPで出来る機能でも良いので教えてください。

  • JavaScriptでフォームへのフォーカス処理

    PHP、XHTML、CSSで応募フォームの作成をしております。 PHPとHTMLは別ファイルで作成しており、PHPにアクセスしてそのPHPが指定されたテンプレートを読みにいくような流れとなっております。 HTMLもPHPも完成して、応募フォームとして一通り動くようになったのですが、新たにフォーカス機能を追加したいということになりました。 具体的には、応募フォームの一番最初のテキストエリアに、ページ読み込み時にフォーカスを当てたいという内容です。 そこで、フォーカス機能用のJavaScriptを別ファイルで新たに作成し、動きを確認してみたところ上手く動きません。 HTMLとJavaScriptのソースは下記の通りです。 ==================================================================== ■HTML(全て書くと長くなってしまうので、簡略させていただきます) <script type="text/javascript" src="$path_top_js/focus.js"></script> <body onLoad="Focus()"> </head> <form name="top" action="index.php" method="POST" onReset="return false;" onSubmit="return false;"> <input type="hidden" name="USER_ID" value="$USER_ID"> <INPUT size="20" type="text" name="USER_ID" value="$USER_ID" MAXLENGTH="10"> </form> </body> ■JavaScript(focus.js) function Focus(){ document.top.USER_ID.focus(); } ==================================================================== 「フォームのname="USER_ID"というテキストエリアにフォーカスを当てる」という内容になります。 なぜフォーカスが当たらないのか、原因は予想がつくのですが、どう解決していいのか分かりません。 多分、フォームの値を保持するために記述しているhiddenタグ <input type="hidden" name="USER_ID" value="$USER_ID"> にJavaScriptのフォーカスが当たってしまっているみたいです。(フォーカスが当たっていると思われるhiddenタグは見ることができません) 試しにhiddenタグを外してみたところ、JavaScriptで指定したテキストエリアにフォーカスが当たっていることを確認しました。 「応募フォーム」ということで、ページ遷移した際にもフォームに入力した値を保持しておくためにhiddenタグは外したくないのですが、フォーカス機能もちゃんと動くようにしたいと思っております。 解決方法が分かる方いらっしゃいましたら、ご教授の程お願い致します。

    • ベストアンサー
    • HTML
  • struts selectbox optionsCollection labelテキストを取得したい

    こんにちは。技術者のみなさん、是非力を貸してください。 JSPのページでselectボックスで選択したlabel値をjavascriptで取得したいのですが、取得できません。value値は以下のように取得できます。 何か良い方法がありましたら教えて下さい、よろしくお願い致します。 <script type="text/javascript">  function GetLabel(){ //value値は取得できる   alert(formname.aa.value); //label値を取得したい   alert();  } </script> <html:select property="aa" value="" > <html:optionsCollection name="list" value="id" label="name"/> </html:select>

専門家に質問してみよう