• 締切済み

テキストの値が代入された後にイベントを発生させたい

親ウィンドウと子ウィンドウがあります。 親ウィンドウのテキストボックスのvalueに、子ウィンドウの関数内で値を代入します。 親ウィンドウでテキストボックスの値が書き換えられますが、そのときにイベントを発生させたいのですが、 何か良い案はありますでしょうか? なお、子ウィンドウでは、親画面のテキストボックスに値を代入するのみで、 親ウィンドウの関数を呼び出すことはできない とします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 >子ウィンドウから親ウィンドウのtextboxに日付を代入します そのまま続けて、再計算をすればイベントを発生する必要はないように思えますが…? もちろん、親のウィンドウに計算処理をするスクリプトがあるのなら、それを呼び出しても良いでしょうけれど… >親ウィンドウの関数を呼び出すことはできないとします という条件だったので、親ウィンドウに計算するイベント処理があるとして、それを直接呼び出す代わりにイベントを発生させる方法として#1は回答をしています。

HAWAI777
質問者

お礼

考えてくださってありがとうございます。 親ウィンドウ自体のonFocusで対応することができそうです。 >そのまま続けて、再計算をすればイベントを発生する必要はないように思えますが…? >もちろん、親のウィンドウに計算処理をするスクリプトがあるのなら、それを呼び出しても良いでしょ>うけれど… 子ウィンドウは他画面からもオープンする共通なウィンドウなので、 親ウィンドウ内の計算処理をそのまますることもできず、 計算処理を呼び出すこともできません。 >>親ウィンドウの関数を呼び出すことはできないとします >という条件だったので、親ウィンドウに計算するイベント処理があるとして、それを直接呼び出す代わ>りにイベントを発生させる方法として#1は回答をしています 参考にさせていただきました。 ありがとうございます。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

質問の意味が良くつかめませんが、 親ウィンドウのドキュメントで、スクリプトからイベントを発生させてあげるとか? https://developer.mozilla.org/ja/DOM/element.dispatchEvent http://www.openspc2.org/reibun/JS_TipsAndTricks/basic/013/index.html

HAWAI777
質問者

補足

回答ありがとうございます。 やりたいこととしては、 親ウィンドウにtextboxが2つあり、どちらのvalueにも日付が入ります。 その2つの日付の差分を自動計算したいのです。 そこで、子ウィンドウから親ウィンドウのtextboxに日付を代入します。 そうすると、親ウィンドウのtextboxが書き換わりますよね。 そこで、親ウィンドウの2つの日付の差分を計算しなおしたい。ということなんです。

関連するQ&A

  • テキストボックスへの値の代入と、PHP

    function setvalue(){ document.getElementById("text3").value = "ユニックス"; } として、JavaScript側で、参照ボタンが押された時に、 id がtext3 のテキストボックスに値を代入したい場合、、 HTML側で <INPUT type="button" value="参照" onclick="setvalue()"> <INPUT type="text" name="言語" id="text3" size="30" class="ws1" #######> ######の部分に、value属性(value="~")は何も書かなくてもいいのでしょうか。 また、これはJavaScriptの関数を呼んでテキストボックスへの値の代入を実現していますが、 これを、PHPスクリプトで、実現する方法はないでしょうか。 ご指導、よろしくお願いします。

    • ベストアンサー
    • Java
  • テキストボックスの値変更時のイベント

    フォーム上のテキストボックスに、前の画面で入力したデフォルト値が表示されている状態で、テキストボックスの値を変更したらJavaScriptの関数でチェックさせたいと考えているのですがうまくいきません。 onChangeイベントは値を変更(例えば削除するなど)して、Enterキーを押すなりフォーカスを移すなりしないとイベントが発生しないので、変更されたら即座にチェックということができません 何かうまい方法はないでしょうか?

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。

  • TextChangeイベントが発生しない

    ASP.NETで開発を行っています。 クライアント側の処理はJavaScript、サーバー側の処理は VB.NETを使っています。 サーバー側であるテキストボックスに対してT extChangeイベントを発生させたいのですが、 クライアント側の処理で値を入力したときは、 イベントが発生しません。 サーバー側で値を変更したときは発生します。 具体的な手順は以下のとおりです。 Cookieから取得した値をテキストボックスにセット ↓ この時点でTextChangeイベントを発生させたいが、何も起こらない。 ↓ サーバー側の処理でそのテキストボックスの値を変更する。 ↓ この時点でTextChangeイベントが発生。 また画面上で直接値を入力したときはイベントが発生します。 クライアント側の処理でテキストボックスに入力した場合は、 サーバー側のイベントは発生しないのでしょうか。 この処理の中で値が入力された時点でイベントを発生させる にはどうしたらいいのでしょうか?

  • テキストボックスの値を変数に代入したい。

    テキストボックスの値を変数に代入したいのですが、どういうコードを書けばいいですか? 例えばTextBox1の値を変数xに代入したいのですが。

  • onBlurのイベントを使ってデータベースを参照し値を代入する方法

    伝票入力する際、ACCESS等で作ると、例えば「得意先コード」を入力すると 「得意先名」が表示される。という画面がありますよね。 そこで先輩方にお伺いしたいのですが、 ASPを使って同様のことをやる場合、どんな手法があるのでしょうか? 私なりに考えた方法が2つほどあるのですが、これが正しいのでしょうか? <案1> ・子ウインドウを表示し、そこでデータベースを参照し、親ウインドウに値を代入。 ---親ウインドウ側--- <INPUT type="text" name="text1" onBlur="GetJTname()"> <INPUT type="text" name="text2"> <script language="JAVAScript"> function GetJTname(){  Newwin=window.open("test1_1.asp?a=" + document.form1.text1.value,"sample","width=240,height=180"); } </script> ---子ウインドウ側--- <form name="form2"> <INPUT type="text" id=text1 name=text1 value="<%=rs.Fields("name_inf").Value%>"> </form> <script language="JAVAScript"> function action(){  window.opener.document.form1.text2.value=document.form2.text1.value;  window.close(); } </script> <案2> ・自分自身にデータを投げる <INPUT type="text" name="text1" onBlur="GetJTname()"> <INPUT type="text" id=text2 name=text2 QS=Request.QueryString("B") value="<%if QS <>"" then %><%=Tname(QS)%><%end if%>"> <%function Tname() <script language="JAVAScript"> function GetJTname(){  location.href ='test1.asp?B=' + document.form1.text1.value; } </script> <%function Tname(code) '... ADOの処理 end function%> (案1)では、当然ながら一瞬ウインドウが開きます。 (案2)では、せっかく入力したTEXT1の内容が消えてしまいます。

  • テキストボックスに値入力でイベントが取得できない

    年月日テキストボックス(readonly)に、子ウインドウから値を選択して、表示させています。 可変で複数行あり、同じ値はエラーにしたいのですが、子ウインドウから値が入力された場合のイベント取得ができません。(onchangeは無視されます) なるべく入力をした時点でチェックしたのです。 よろしくお願いします。

  • ACCESSで値を代入できないとは?

    ACCESS2000を使用しています。 フォームを作り、画面のテキストボックスに値を入れると、エラーになります。 エラーコードは 2448。 エラーメッセージは オブジェクトに値を代入できない と出ますが、ヘルプが参照できません。 どういうことなのでしょうか。

  • イベント発生について

    お世話になります。 .NET C#で開発をしております初心者です。 テキストボックスに数字を入力したら、その値をメッセージボックスで ユーザーに確認を促したいのですが、そのイベント発生タイミングを どうしたらいいのか考えています。 現在は下記の様にしています。 まず、TextChangeイベントで、変数に代入してから、Leaveイベントでメッセージボックス を表示させています。 本当は、Leaveイベントでなく、その場でメッセージボックスを表示させたいのですが、 でも、TextChangeイベントだけでは、例えば二桁以上の数字を入力しようとしていた場合、 一桁数字を打ち込む度に、TextChangeイベントが発生してしまい、その度にメッセージボックスが 表示されてしまうので、仕方なくLeaveイベントも使っています。 何か良い方法ってありますでしょうか。 どなたかご親切な方、ご教授頂きたく宜しくお願い致します。                           記 private void textBox1_TextChanged(object sender,EventArgs e) { if(textBox1.Text != "-") { if(textBox1.Text != "") { suuryou = int.Parse(textBox1.Text);   } } } private void textBox1_Leave(object sender,EventArgs e) { if(textBox1.Text != "") { MessageBox.Show(suuryou,"", MessageBoxButtons.OK, MessageBoxIcon.Information); } }

  • 子ウィンドウから親ウィンドウへの値代入

    こんにちは。 asp.net2.0を使い始めて間もないのですが、子ウィンドウから親ウィンドウへの値代入で困ってます。 親ウィンドウからボタンで子ウィンドウを表示し、子ウィンドウのGridViewで選択した値を親ウィンドウの テキストボックス(サーバーコントロール)に代入したいのですが、 ['window.opener.form1.TextBox1' は Null またはオブジェクトではありません。] というエラーが出てしまいます。 ネットで見つけたサンプルは、親、子ともにウェブフォームを使用しており、確かにうまくいくのですが、 私が作っているページはマスターページの中のコンテンツフォームを親としていて、うまくいきません。 ※但し、親側のコントロールをHTMLクライアントコントロールのINPUTタグにし、 さらにフォーム名をaspnetForm(ブラウザのソース表示でみたらそうなってました。自動生成?) にして ↓子ウィンドウのグリッド選択時ソース protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { string strScript; strScript = "<script language='javascript'>"; strScript += "window.opener.form1.TextBox1.value='aaaa';"; strScript += "window.close();"; strScript += "</script>"; Response.Write(strScript); } リテラルコントロールにしたり、TextBox1.valueではなくTextBox1.textにしてみたりと いろんなパターンを試しましたが、だめでした。 コンテンツフォームでは親のサーバーコントロールへの値代入は不可能なのでしょうか? そもそも、子ウィンドウでの検索というのはASP.NETでは、あまり一般的ではないのでしょうか? 宜しくお願いいたします。 (情報、不足してましたら教えてください。)

専門家に質問してみよう