- PR -

ASP.Net & JavaScript テキストボックスにデータを入れたい

投稿者投稿内容
まるーぶら
会議室デビュー日: 2006/02/02
投稿数: 12
投稿日時: 2006-02-02 15:24
初めて投稿します。

ASP.Net(VB.Net)でWebアプリを構築中なのですが、コマンドボタン押下時に
サーバー側で動的に JavaScript の confirm メッソドをクライアント側に
書き出しメッセージボックスを表示しています。
メッセージボックスの「はい」、「いいえ」押下による戻り値から判定して
クライアントの画面上にあるテキストボックスに値を表示したいのですが、
「はい」または「いいえ」を押下後、何故かテキストボックスに値が全く
書き込まれません。


----- 以下が上記処理のソースです -----

@ クライアント画面 id="Form1" method="post" autocomplete="off" runat="server"

@ クライアント画面上のテキストボックス id="txtHidden" runat="server"

@ コマンドボタン押下時のVB.Netコード

Dim stbScript As New System.Text.StringBuilder

stbScript.Append("<script language=""JavaScript"">" & vbLf)
stbScript.Append("{if(confirm('○○処理をします。よろしいですか?') == True)" & vbLf)
stbScript.Append("{document.Form1.txtHidden.Value=""0"";}" & vbLf)
stbScript.Append("else" & vbLf)
stbScript.Append("{document.Form1.txtHidden.Value=""−1"";}" & vbLf)
stbScript.Append("}</script>")

RegisterStartupScript("OpenNewWindow", stbScript.ToString)


@ クライアント側のHTMLソースに記述されるJavaScriptコード

<script language="JavaScript">
{if(confirm('○○処理をします。よろしいですか?') == True)
{document.Form1.txtHidden.Value="0";}
else
{document.Form1.txtHidden.Value="-1";}
}</script>

--------------------------------------


ちなみに動的に JavaScript をHTMLソースに書き出すのは、コマンドボタンを
押下時の画面上の他コントロール入力条件によって txtHidden 内の値を
いろいろと変えたいからです。

どなたか良い方法を御存知の方が見えましたら教えてください。


Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-02-02 15:30
confirm の 「はい」「いいえ」どちらをクリックしても
値が入らないのでしょうか?

JavaScriptのエラーも表示されないのでしょうか?

stbScript.Append("{if(confirm('○○処理をします。よろしいですか?') == True)" & vbLf)

の True (JavaScriptでは全て小文字の trueなので)が怪しい気が・・・


[ メッセージ編集済み 編集者: Katze 編集日時 2006-02-02 15:40 ]
まるーぶら
会議室デビュー日: 2006/02/02
投稿数: 12
投稿日時: 2006-02-02 15:47
Katzeさん。返信ありがとうございます。

「True」を「true」にして見ましたが、駄目でした。

ちなみに「はい」、「いいえ」どちらを押しても未だに値は書き込まれません。
またコントロール名、フォーム名にも違いはありません。


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-02 16:02
True から true に変えたことで Script エラーが発生しなくなったのは良いとして、
(そもそも、true なんて表記は必要ないのですが)

同じように Value も value なわけです。

コード:

    if (confirm('○○処理をします。よろしいですか?')) {
        document.Form1.txtHidden.value="0";
    } else {
        document.Form1.txtHidden.Value="-1";
    }


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-02-02 16:03
失礼しました。

txtHideden.Value の Value も value と小文字にしてみたら
どうでしょうか?

#ところでJavaScriptエラーになりませんでした?
#Trueだとエラーになると思ってたけど・・・

#書くのが遅いので じゃんぬさんに先越されちゃいましたorz
#じゃんぬさんありがとうございます

[ メッセージ編集済み 編集者: Katze 編集日時 2006-02-02 16:12 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-02-02 16:12
ちなみにブラウザは何ですか?

IE6 だったら
インターネットオプション−詳細設定−スクリプトエラーごとに通知を表示する
のチェックボックスをオンにして試してください。

クライアントスクリプトはHTMLで試してから
ASPで実装するようにしたほうがデバックが楽ですよ
まるーぶら
会議室デビュー日: 2006/02/02
投稿数: 12
投稿日時: 2006-02-02 16:14
Katzeさん、じゅんねっとさん 返信ありがとうございました。

おっしゃるとおり大文字を小文字に変えたら上手くいきました。

ブラウザーのツールバーなどを表示しないようにしていたので、
それを解除して実行してみると、やはり大文字のままだと
JavaScript のエラーが発生していました。

ご協力ありがとうございました。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-02 16:35
引用:

まるーぶらさんの書き込み (2006-02-02 16:14) より:

それを解除して実行してみると、やはり大文字のままだと
JavaScript のエラーが発生していました。


余談ですが、Value の方に関してはエラーにならないと思います。(多分)
未定義かどうかを見るためにも alert で怪しいオブジェクトを表示したりすると、
テキスト エディタであってもそれなりにデバッグはできますよ。

# Katze さん、横槍してすいませんでした。(*_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)