- - PR -
オブジェクトのプロパティ変更に伴うjavascriptでの反映処理
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-03 01:51
開発環境は、C#, ASP.NET, javascript です。
Webフォームにボタンとラベルを配置し、Page_Loadイベントでラベルの テキストプロパティを変更します。その後、ボタンのアトリベートで、 ボタンのOnClickイベントをキャッチし、javascriptでの処理を実行させます。 その時、変更した値がjavascriptでは反映されておりません。 この場合、どうすれば、値を引き渡すのでしょうか? 初心者ならではの質問で申し訳ありませんが、お願い致します。 また、同じようなことが既に質問されていましたら申し訳ありません。 検索しましたが、当該に近い書き込みを見つけることができませんでした。 | ||||
|
投稿日時: 2004-03-03 08:54
さわでぃーさんこんにちは。
>ボタンのOnClickイベントをキャッチし、javascriptでの処理を実行させます。 >その時、変更した値がjavascriptでは反映されておりません。 >この場合、どうすれば、値を引き渡すのでしょうか? 今はどうやって渡しているのですか?ボタンに書かれた、例えば「送信」 という文字列をどのように取得しているのでしょうか? 裏で変数に値を持たせておけばいいのではないでしょうか? | ||||
|
投稿日時: 2004-03-03 09:28
具体的には次のとおりです。
Webフォームのラベル、ボタンを使用しています。 C#(クラス)側 private void Page_Load(object sender, System.EventArgs e) { label1.Text=送信; button1.Attributes["OnClick"]="return btnMosikomu_OnClick();"; } ASP側 <script language="javascript" id="clientEventHandlersJS"> <!-- function btnMosikomu_OnClick() { confirm(label1.text) } "undefined"とメッセージが返ります。 "送信"という文字列を受け取るには、どうすればよいのでしょうか? | ||||
|
投稿日時: 2004-03-03 09:39
label1にtextというメンバがないと思うんですけど。
Javascriptでコントロールの値を設定したり取得したりはvalueじゃなかったでしたっけ? VB.NET(サーバー側)のコードとJavascript(クライアント側)のコードを混同していませんか? | ||||
|
投稿日時: 2004-03-03 09:48
labelはspanタグになっているので
document.all.label1.innerHTML; という感じで取得するようにしてください。 今回だと confirm(document.all.label1.innerHTML); | ||||
|
投稿日時: 2004-03-03 09:53
あ、そうだった。 Labelはコントロールになるわけじゃなかったですね。 適当なこと書いちゃいました。 | ||||
|
投稿日時: 2004-03-03 10:29
お返事、ありがとうございます。
早速、実行させていただきましたら見事に値を取得することができました。 しかし、ラベルが非表示となった場合(VisibleプロパティがFalse)、 値を取得することができません。 ラベルが非表示の場合にも値を取得できるようにならないものでしょうか? | ||||
|
投稿日時: 2004-03-03 10:45
“サーバで”「ラベルが非表示」というのが、“クライアントで”「どのような状態」であると思われますか?
Webアプリを作成しているときに、「おかしいな?」と思ったら、クライアント側の実体(HTML)がどのようになっているか、ページを右クリックして「ソースを表示」し、確認するようにしてください。 *****ここから答え サーバプロパティでVisible=Falseとすると、クライアントには“出力されません”。よってクライアントには“オブジェクトがありません”。存在しないオブジェクトからプロパティを取ることはできないのです。 valueを空文字列にして「疑似非表示」し、カスタム属性を追加することでjavascript上ではプロパティを追加して、対応できると思います。 |