• 締切済み

Javaでフォームのオブジェクトをどのように記述するか

こんにちは。いつもお世話になっています。 現在ポップアップウィンドウを用いたWEBページを作成し、その機能をカスタムタグによって再現するという作業をしています。 mainWinからsubWinを開き、sabWinからmainWinに表示された画像をjavascriptで変化させるというものです。 まず ラジオボックスがチェックされているかなどを調べる for(i=0; i<document.forms[name].elements[form_ele].length; i++) { if(document.forms[form_name].elements[form_ele][i].checked) break; } (form_nameはフォーム名form_eleは要素名でこの関数呼び出し時に引数で渡しています) などの処理があり、その後画像変更を行います。 基本はimageに image = document.forms[form_name].elements[form_ele][i].value; でフォームで選択した画像名を渡し window.opener.document.getElementById('ID').src=image; (IdのIDは変更場所を示しています) によって画像を変更しています。 現在window.opener~のところを <castom tag:カスタムタグ名 mode="getElementById('ID').src" value="image"/> といったように書き換えるタグは単純ですので可能でしたが form_nameやform_eleもカスタムタグのところで要素として(?)渡し、 (<casom tag:カスタムタグ名 mode="getElementById('ID').src" value="image" name="form_name" elements="form_ele"/>といったふうに) チェック済み判定部分などすべてカスタムタグで表記できないかと考えています。 しかしforms[form_name]やwindow.opener等のオブジェクト名(?)はどのようにすればjavaが理解し、処理してくれるのでしょうか? (getParameterなどでキャッチすればいいのでしょうか?ただ名前だけキャッチしても処理させるにはどうするのかわかりません・・・) またこのようなことは不可能でしょうか? よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数3

みんなの回答

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.2

失礼しました。カスタムタグに属性を付加したいというお話ですね。 カスタムタグに属性を付加したい場合は、カスタムタグのクラスにsetXXXXというメソッドを追加するだけです。 属性名がelementsならsetElements、というように。 詳しくは参考リンクの「属性を持つカスタムタグ」をご覧下さい。 ただ、カスタムタグにするよりもJavaScriptの当該部分をJavaScriptの関数にして、外部ファイルにしたほうがすっきりするのではないかと思います。 JavaScriptを外部ファイルにした上で関数の呼び出し部分をカスタムタグにするという複合技もいいかもしれません。

参考URL:
http://ash.jp/java/taglib_hello.htm
noahlife
質問者

補足

回答ありがとうございます。 また私の言葉不足で申し訳ありません。 補足させていただきます。 現在 javascriptの関数で window.opener.document.getElementById('ID').src=image; の部分を <castom tag:カスタムタグ名 mode="getElementById('ID').src" value="image"/> という風に置き換え タグハンドラには out.print("window.opener.document." + mode "=" + value); と記述して単純なカスタムタグを作成している状態です。 これからしたいことは for(i=0; i<document.forms[name].elements[form_ele].length; i++) { if(document.forms[form_name].elements[form_ele][i].checked) break; } の部分をタグハンドラにどう記述するかと言うところです。 for文は普通に記述するにしても document.form~がjavaからするとなんじゃそりゃ ということになります。 どういう風にjavaに記述すれば、よろしいのでしょうか? もしご存知でありましたらよろしくお願いいたします。

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

JavaScriptの話題はJavaScriptのカテゴリーへ投稿しましょう。 そちらの方が回答がつきやすいですし。 # JavaとJavaScriptは全く別物です。

noahlife
質問者

お礼

javaファイル(タグハンドラ)への記述方法なのですがこちらでだめでしょうか^^;

関連するQ&A

  • VBSのIEオブジェクトでフォームデータ送信する

    ■質問 通常IEオブジェクトを使ってフォームにセットされたデータを サブミットするには、 IE.Document.forms("").elements("").value = "" IE.Document.forms("").submit() と行うと思うのですが。 例えば下記のようなフォームを送信する際、 フォームのある"http://test.com/login_form" ページにわざわざ移動せず 直接"http://test.com/action"の "hidden"のエリアに対してデータを送信 する方法を教えて頂けませんでしょうか? また、Form1に複数のエレメントが存在する場合 全てのエレメントの値を送らないと正しく処理 できないでしょうか? ■"http://test.com/login_form" のHTML <form name="Form1" method="post" action="/action"> <input type="hidden" name="ID" value="1234"> <input type="submit"> </form>

  • 文書オブジェクトについて???

    フォームボタンの画像を入れ替えたいのですが、 正しく動きません。何が悪いのでしょうか? 文字コードはEUC-JPを使っていますが、関係あるのでしょうか? <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE>Javascript</TITLE> <script type="text/javascript"> <!-- function btn_click(dat) { if(teban == 1){ document.forms['btn'].elements['btn1'].src = "./img/b.gif"; }else{ document.forms['btn'].elements['btn2'].src = "./img/d.gif"; } } --> </script> </HEAD> <BODY> フォームのボタンを使ってクリックすると画像が変わる  ようにしたい <form name="btn"> <input name="btn1" type="image" src="./img/a.gif" onClick="play_start(1); return false;"> <input name="btn2" type="image" src="./img/c.gif" onClick="play_start(2); return false;"> </form> </BODY> </HTML>

  • 親ウィンドから子ウィンドへのデータの受け渡し方法

    親ウィンドから子ウィンドへのデータの受け渡し方法で以下に簡単に記述致します。 親 <input・・・name="IN1"・・・> <input・・・name="IN2"・・・> <input・・・name="IN3"・・・> 子 for (i=1,i<=3,i++) { window.opener.document.form名.IN'+i+'.value = eval('form.IN'+i+'.value'); } <form・・・ <input ・・・name="IN1"・・・> <input ・・・name="IN2"・・・> <input ・・・name="IN3"・・・> として渡したいのですが、 window.opener.document.form名.IN'+i+'.valueの"+i+"の指定でエラーとなってしまいます。エラー内容は『'+i+の'の後に;がありません』です。どのように指定すれば宜しいのでしょうか?

  • 任意のフォーム名・部品名に対応したいのですが・・・

    始めまして。 カラーパレットのphpを作り、親ウィンドウのテキストボックスにカラー値を 引き渡す部分に以下のようなjavascriptを作りました。 function set_color(color) { window.opener.document.form1.name_color.value = color; } (フォーム名:form1 テキストボックス名:name_color) 一応これでも動作するのですが、これではテキストボックスごとに別々のphpプログラムを用意しなければなりません。 そこで、引数を使い function set_color(form_name, txt_name, color) という形でフォーム名とテキストボックス名を任意に指定したいのですが window.opener.document.form1.name_color.value = color; の部分をどう書きかえればいいのかわかりません。 どうか、よろしくお願いします。

  • 選択したformの名前を取得する方法

    いくつもあるフォームからクリックされたフォーム名を参照する方法をどなたか教えて下さい。 下のスクリプトが間違っていたり(といいつつ、既に動かないので間違いです)、はじめから出来ないことであればご容赦下さい。 下のスクリプトはフォーム名の取得をするためだけにに書いているものです。 <SCRIPT language="JavaScript"> <!-- function move() {   for(i=0;i<30;i++) { var check="form"+i; if(check==document.forms[i].name) { return document.write("これは→"+check+"です");     }   } } --> <body> <FORM name="form0"><input type="image" src="back.gif" onclick="move()"></form> <FORM name="form1"><input type="image" src="back.gif" onclick="move()"></form> <FORM name="form2"><input type="image" src="back.gif" onclick="move()"></form> ・ ・ ・ <FORM name="form29"><input type="image" src="back.gif" onclick="move()"></form> </body>

  • フォーム内のオブジェクトを取得したい

    フォームタグ内のオブジェクトをphpで取得できないでしょうか。 たとえば <From Action"xxx.php" Post="Mothod"> <Input Type=Text Name=xxx> <Input Type=Text Name=xxx> <Input Type=Submit Name=xxx Value=送信> </Form> このようなフォームがあり「送信」を押下した際に、このフォームオブジェクトの要素を知りたいのです。 JavaScriptであれば document.forms[0].elements[0] で拾えたと思うのです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • javascriptを使ったformへの自動ログインがうまくいきません

    こんにちは、以下のような書かれたサイトにjavascriptを使って自動ログインしたいと考えていますが、うまくログインされません。 一番下のinputタグにてログインしているようなのですが IE.Document.Form1.imgLogin.click(); とすると、エラーになるので IE.Document.Form1.elements(5).click(); としましたがエラーにはならないもののうまくいきませんでした。 IE.Document.Form1.elements(5).data = true; IE.Document.Form1.elements(5).value = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit(); としてみましたが、こちらもうまくいきませんでした。 どのようにしたら、自動ログインすることが可能なのでしょうか? 教えて頂けると非常に助かります。 よろしくお願いいたします。 ---サイトフォーム <FORM id=Form1 name=Form1 action=index.aspx method=post> <INPUT id=__VIEWSTATE type=hidden value=... name=__VIEWSTATE> <INPUT id=__EVENTVALIDATION type=hidden value=... name=__EVENTVALIDATION> <INPUT id=txtUid maxLength=6 value="" name=txtUid> <INPUT id=txtPwd type=password maxLength=20 value="" name=txtPwd autocomplete="off"> <INPUT language=javascript id=imgLogin onclick="{ if (document.Form1.txtUid.value==&quot;&quot;) { document.Form1.txtUid.focus();alert('ユーザIDを入力してください。');return false;} if (document.Form1.txtPwd.value==&quot;&quot;) {alert('パスワードを入力してください。');document.Form1.txtPwd.focus();return false;} return true;};" type=image src="img\login1.gif" border=0 name=imgLogin></form> ----オートログイン.js var IE = WScript.CreateObject("InternetExplorer.Application"); IE.Visible = true; IE.Navigate("http://hogehoge/hoge/index.aspx"); while(IE.busy) ; while(IE.Document.readyState != "complete") ; IE.Document.forms(0).elements(3).value = "user"; IE.Document.forms(0).elements(4).value = "password"; //IE.Document.forms(0).elements(5).click(); //IE.Document.Form1.imgLogin.click(); IE.Document.Form1.elements(5).data = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit();

  • 親ウィンドウのリスト値変更

    やりたいこと: 親ウィンドウからwindow.openで子ウィンドウを開き、 子ウィンドウのリスト値を親ウィンドウへ追加する Firefoxだと、ちゃんとできるのですが、IE7だと 『window.opener.document.resultData.sel.options[i] = newOption;』 の部分でサポートされてないプロパティまたはメソッドとエラーが出ます。 同じウィンドウでテストしてみるとちゃんと動くので、 window.openerがまずいのか [子ウィンドウ] function sendDate() { list=new Array; list[0]="apple"; list[1]="orange"; for(i=0; i<Cnt; i++){ var newOption = new Option(); newOption.text = list[i]; newOption.value = i; window.opener.document.resultData.sel.options[i] = newOption; } ※window.opener.document.resultData.sel.options[i]=new Option(list[i],list[i]);  でも同じ結果でした。 [親ウィンドウ] <form id=resultData name=resultData> <select name=sel id=sel> <option value="">--選択--</option> </select> </form> どなたか原因わかりましたら、ご伝授願います。 ※PHP、smarty使用してます。

  • 子ウィンドウから親ウィンドウのチェックボックス

    おそれいります。 現在、子ウインドウで、window.opener.document.getElementById('text1').value='4444'; window.opener.document.getElementById('text2').value='こんにちは'; window.opener.document.getElementById('text3').value='今日は晴れ'; として、親ウィンドウで <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> へ値をセット出来ているのですが、 この記述の流れで親ウィンドウのチェックボックスを子ウィンドウからtrueにすることはできるでしょうか。よろしくお願いします。

  • 選択されたラジオボタンの値が取り出せない

    フォームを使って普通のHTMLで記述すれば選択された値が 送られてくると思うのですが、エレメントを作って次のような やり方だと、「2」を選択したとしてもvalueが「1」しか返ってきません。 どうすれば適切に値を取り出すことができるのでしょうか? var element1 = document.createElement("span"); element1.innerHTML = "<input type='radio' name='a' value=1>"; document.body.appendChild(element1); var element2 = document.createElement("span"); element2.innerHTML = "<input type='radio' name='a' value=2>"; document.body.appendChild(element2); ~何かクリックした先でidが「a」のオブジェクトを取得し、選択されてた値を取り出したい~ var ele = document.getElementById("a"); alert(ele.value);←1しか表示されない

専門家に質問してみよう