C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[16]: javascriptでconfirmでの条件分岐


(過去ログ 66 を表示中)

[トピック内 17 記事 (1 - 17 表示)]  << 0 >>

■37810 / inTopicNo.1)  javascriptでconfirmでの条件分岐
  
□投稿者/ nao (10回)-(2009/07/01(Wed) 01:25:12)

分類:[ASP.NET (VB)] 

いつもお世話になっております。

他案件で、解決済みにもなっていないのですが
それとはまた別件での質問になります。


◇やりたいこと
listBoxで1が選択された時に、confirmでメッセージを出し、
そのOkならA処理、キャンセルならB処理をさせたいのです。


色々と、調べたのですがエラーになるわけでもなく、その処理ができません。
書き方が違うのか・・・?


Jcs030.vb
If Left(Me.skubun.Text, 1) Then
Dim msg As String
msg = ("新規に受注番号を取得して宜しいですか?")
Dim Script As String = _
"<SCRIPT LANGUAGE=""javaScript"">" _
& "var kubun = confirm(""" & msg & """);" _
& "if (kubun == true){" _
& "jNo_txt.Text = jNo;" _
& "torimatome_txt.Focus();}" _
  & "else{" _
& "jNo_txt.ReadOnly = False;" _
& "jNo_txt.Focus();" _
& "</script>"
ClientScript.RegisterStartupScript(Me.GetType, "kubun", Script) Else
jNo_txt.ReadOnly = False
jNo_txt.Focus()



と、記述はしてるのですが・・・
エラーもでなければ思った通りのことはできてません。
そこで・・・

     Dim jnotxt As String
Dim jno As String
Dim Script As String = ""
Script = "<SCRIPT language='JavaScript'>" & _
"var bolFlg = confirm(""" & msg & """);" & _
"if(bolFlg == true){" & _
" """ & "jNo_txt.Text=" & jnotxt & """" = """" & "jNo=" & jno & """;" & _
"}" & _
"</SCRIPT>"

Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "kubun", Script)
Else
jNo_txt.ReadOnly = False
jNo_txt.Focus()
End If

と、記しましたが(javascriptは小文字認識ということがわかり・・・)・・・
やっぱりエラーになるわけでもなく・・・


ASP.NET(VB)2005です。
vb側の処理記述をご教示願います。


よろしくお願いいたします。



引用返信 編集キー/
■37828 / inTopicNo.2)  Re[1]: javascriptでconfirmでの条件分岐
□投稿者/ もりお (4回)-(2009/07/01(Wed) 16:18:55)
No37810 (nao さん) に返信
> listBoxで1が選択された時に、confirmでメッセージを出し、
> そのOkならA処理、キャンセルならB処理をさせたいのです。
>
> 色々と、調べたのですがエラーになるわけでもなく、その処理ができません。
> 書き方が違うのか・・・?

confirm のダイアログは出ますか?
ダイアログは出るけれども、クリックした後の処理が行われないのですか?

コードを見る限りでは、サーバーへのサブミットが必要なのかなという気がします。
引用返信 編集キー/
■37834 / inTopicNo.3)  Re[2]: javascriptでconfirmでの条件分岐
□投稿者/ nao (11回)-(2009/07/01(Wed) 17:07:40)
No37828 (もりお さん) に返信
> ■No37810 (nao さん) に返信
>>listBoxで1が選択された時に、confirmでメッセージを出し、
>>そのOkならA処理、キャンセルならB処理をさせたいのです。
>>
>>色々と、調べたのですがエラーになるわけでもなく、その処理ができません。
>>書き方が違うのか・・・?
>
> confirm のダイアログは出ますか?
> ダイアログは出るけれども、クリックした後の処理が行われないのですか?
>

上の書き方ですと、出ますが、下の書き方だと出ません。。。
引用返信 編集キー/
■37840 / inTopicNo.4)  Re[3]: javascriptでconfirmでの条件分岐
□投稿者/ もりお (5回)-(2009/07/01(Wed) 18:28:12)
No37834 (nao さん) に返信
実行したい処理が良くわからないのですが
confirm が表示されて、A処理、B処理に処理が移ることは確認できるかと思います。
クライアント側で実行されるので、サーバー側のコントロールは操作できません
ので悪しからず。

Dim msg As String = "新規に受注番号を取得して宜しいですか?"
Dim Script As String = _
"<script type=""text/javascript"">" _
& "if(confirm( """ & msg & """ )){" _
& " alert( ""A処理"" );" _
& "}else{" _
& " alert( ""B処理"" );" _
& "}" _
& "</script>"
ClientScript.RegisterStartupScript(Me.GetType, "kubun", Script)

引用返信 編集キー/
■37845 / inTopicNo.5)  Re[4]: javascriptでconfirmでの条件分岐
□投稿者/ nao (12回)-(2009/07/01(Wed) 19:44:53)
2009/07/01(Wed) 19:51:49 編集(投稿者)

No37840 (もりお さん) に返信
> ■No37834 (nao さん) に返信
> 実行したい処理が良くわからないのですが
> confirm が表示されて、A処理、B処理に処理が移ることは確認できるかと思います。
> クライアント側で実行されるので、サーバー側のコントロールは操作できません
> ので悪しからず。
>
> Dim msg As String = "新規に受注番号を取得して宜しいですか?"
> Dim Script As String = _
> "<script type=""text/javascript"">" _
> & "if(confirm( """ & msg & """ )){" _
> & " alert( ""A処理"" );" _
> & "}else{" _
> & " alert( ""B処理"" );" _
> & "}" _
> & "</script>"
> ClientScript.RegisterStartupScript(Me.GetType, "kubun", Script)


もりおさん
有難うございます。

すいません、もう少し教えてください。
ここでいうA処理の記述方法がわからないのですが・・・
OKならtxtBoxに値(jNo:値を格納済み))を入れて次のtxtBoxにFoucusさせたい。
キャンセルならtxtBoxがReadOnlyになっているので、解除(False)にしたいのです。
その記述が色々とやっているのですが値がうまく入っておらず・・・
という状態です。

よろしくお願いいたします。

と、思ったのですが・・・
サーバー側でのコントロール操作が無理(読み落としてました(><))ということなので
ReadOnly=FalseやFoucusは出来ないってことですかね?
すると、TxtBoxへ値を入れることだけは可能なんでしょうか?
ならば、txtBoxへ値を入れる処理の書き方をご教示ください。

普通の書き方?でいくと
jNo_txt.Text = jNo
で、表示すすことができるのですが、javascriptでの記述方法が分かりません。

よろしくお願いいたします。
引用返信 編集キー/
■37854 / inTopicNo.6)  Re[5]: javascriptでconfirmでの条件分岐
□投稿者/ もりお (6回)-(2009/07/02(Thu) 05:45:57)
No37845 (nao さん) に返信
> ReadOnly=FalseやFoucusは出来ないってことですかね?
クライアント側からサーバー側のコントロールを参照することは出来ませんが
クライアント側でdisableやfocusの移動をすれば良いような気がします。

> すると、TxtBoxへ値を入れることだけは可能なんでしょうか?
> ならば、txtBoxへ値を入れる処理の書き方をご教示ください。
> 
> 普通の書き方?でいくと
> jNo_txt.Text = jNo
> で、表示すすことができるのですが、javascriptでの記述方法が分かりません。
こんな感じです
<script type="text/javascript">
    if( confirm( "msg" ) ){
        var textbox1 = document.getElementById( "jNo_txt" );
        textbox1.setAttribute( "value", "jNo" );
        
        var nextTextbox = document.getElementById( "nextTextbox" );
        nextTextbox.focus();
    }else{
        var textbox1 = document.getElementById( "jNo_txt" );
        textbox1.disabled = false;
        textbox1.focus();
    }
</script>

引用返信 編集キー/
■37990 / inTopicNo.7)  Re[6]: javascriptでconfirmでの条件分岐
□投稿者/ nao (13回)-(2009/07/05(Sun) 17:37:55)
No37854 (もりお さん) に返信

いつもありがとうございます。

同じように記述し、やったのですが・・・

Dim Script As String
Script = "<script type='text/javascript'>" _
& "if( confirm( """ & msg & """ ) ){" _
& "var jNo_txt = document.getElementById( 'jNo_txt' );" _
& "jNo_txt.setAttribute( 'value', 'jNo' );" _
& "var torimatome_txt = document.getElementById( 'torimatome_txt' );" _
& "torimatome_txt.focus();" _
& "}else{" _
& "var jNo_txt = document.getElementById( 'jNo_txt' );" _
& "jNo_txt.disabled = false;" _
& "jNo_txt.focus();" _
& "}" _
& "</script>"

””で囲むと破線でステートメントの終わりを指定してください。とエラーが出てしまうので
’’で囲みました。

ダイアログまでは出るんですが、if文を読み込んでいないようです。
恐らく、””の数や’’の数とかの書き方なんでしょうが・・・(;_;) グスングスン

引用返信 編集キー/
■38015 / inTopicNo.8)  Re[7]: javascriptでconfirmでの条件分岐
□投稿者/ もりお (7回)-(2009/07/06(Mon) 02:13:55)
2009/07/06(Mon) 02:19:44 編集(投稿者)

No37990 (nao さん) に返信
> ダイアログまでは出るんですが、if文を読み込んでいないようです。

何らかのエラーは出ていませんか?
OKを押したときに
・jNo がテキストボックスにセットされないですか?
・フォーカスが移動しないですか?
キャンセルを押したときに
・テキストボックスがアクティブになりませんか?
・フォーカスが移動しないですか?
引用返信 編集キー/
■38145 / inTopicNo.9)  Re[8]: javascriptでconfirmでの条件分岐
□投稿者/ nao (14回)-(2009/07/08(Wed) 03:12:24)
No38015 (もりお さん) に返信
> 2009/07/06(Mon) 02:19:44 編集(投稿者)
>
> ■No37990 (nao さん) に返信
>>ダイアログまでは出るんですが、if文を読み込んでいないようです。
>
> 何らかのエラーは出ていませんか?
> OKを押したときに
> ・jNo がテキストボックスにセットされないですか?
> ・フォーカスが移動しないですか?

→何もおこりません・・・。

> キャンセルを押したときに
> ・テキストボックスがアクティブになりませんか?
> ・フォーカスが移動しないですか?

→何も起こりません・・・。


エラーも出なければ、逆に何も起こりません・・・

ダイアログだけは出ます・・・。


Web発行しても一緒でした・・・。
引用返信 編集キー/
■38148 / inTopicNo.10)  Re[9]: javascriptでconfirmでの条件分岐
□投稿者/ やじゅ (1080回)-(2009/07/08(Wed) 08:21:02)
やじゅ さんの Web サイト
2009/07/08(Wed) 08:22:02 編集(投稿者)

No38145 (nao さん) に返信
> エラーも出なければ、逆に何も起こりません・・・
>
> ダイアログだけは出ます・・・。
>

まず単純に、alert文にしてやってみては?
それで動作するようになったら、少しずつ本来の処理に書き換えてみるといいよ。

Dim Script As String
Script = "<script type='text/javascript'>" _
& "if( confirm( """ & msg & """ ) ){" _
& " alert( 'A処理' );" _
& "}else{" _
& " alert( 'B処理' );" _
& "}" _
& "</script>"

引用返信 編集キー/
■38261 / inTopicNo.11)  Re[10]: javascriptでconfirmでの条件分岐
□投稿者/ nao (15回)-(2009/07/09(Thu) 21:04:12)
No38148 (やじゅ さん) に返信
> 2009/07/08(Wed) 08:22:02 編集(投稿者)
>


>
> まず単純に、alert文にしてやってみては?
> それで動作するようになったら、少しずつ本来の処理に書き換えてみるといいよ。
>
> Dim Script As String
> Script = "<script type='text/javascript'>" _
> & "if( confirm( """ & msg & """ ) ){" _
> & " alert( 'A処理' );" _
> & "}else{" _
> & " alert( 'B処理' );" _
> & "}" _
> & "</script>

やじゅさん、有難うございます。
alert文にしてやってみました。
すると、きちんと動作しました。

そこで、B処理ほ方を

& "var jNo_txt = document.getElementById( 'jNo_txt' );" _
& "jNo_txt.disabled = false;" _
& "jNo_txt.focus();" _

と、置き換えたところ・・・
デバッグすると
'jNo_txt'はNullまたはオブジェクトではありません。
というエラーメッセージが出ました。
jNo_txt(テキストボックス)を他の書き方で定義?しなくてはいけないのでしょうか?
色々と調べたりしているのですが、いまいち書き方がわからず
エラーメッセージもずっと同じような状況です・・・。

よろしくお願いいたします。

>
引用返信 編集キー/
■38263 / inTopicNo.12)  Re[11]: javascriptでconfirmでの条件分岐
□投稿者/ ?? (1回)-(2009/07/10(Fri) 01:41:59)
> よろしくお願いいたします。


VBが出力した結果を見せてください。1言1句訂正せずにそのまんま見せてくださいね。

エラーが出るのは、VBの出力したJavaScriptが間違っているからです。


引用返信 編集キー/
■38264 / inTopicNo.13)  Re[12]: javascriptでconfirmでの条件分岐
□投稿者/ ?? (2回)-(2009/07/10(Fri) 01:45:35)
>そこで、B処理ほ方を

>& "var jNo_txt = document.getElementById( 'jNo_txt' );" _
>& "jNo_txt.disabled = false;" _
>& "jNo_txt.focus();" _

>と、置き換えたところ・・・
>デバッグすると
>'jNo_txt'はNullまたはオブジェクトではありません。
>と

わかった。jNo_txt が読み込まれる前に処理してるからですねw


このスクリプトの書き込み位置を最後尾 </body>タグの前に移動するとたぶん正常に動作します。



引用返信 編集キー/
■38267 / inTopicNo.14)  Re[13]: javascriptでconfirmでの条件分岐
□投稿者/ みきぬ (522回)-(2009/07/10(Fri) 09:12:46)
No38264 (?? さん) に返信
> わかった。jNo_txt が読み込まれる前に処理してるからですねw
>
> このスクリプトの書き込み位置を最後尾 </body>タグの前に移動するとたぶん正常に動作します。
>
スクリプトを ClientScriptManager.RegisterStartupScript() で登録しているのであれば、スクリプトの位置には問題ないです。

"jNo_txt" という ID の TextBox (かな?)があるようですが、実行時の HTML でもその ID になっているとは限りません。
サーバ側コードで TextBox.ClientID プロパティを使って ID を取得し、その文字列をスクリプトとして出力するようにしてください。

& "var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _

こんな感じ(サーバ側から TextBox を jNo_txt で参照できるとしてだけど)
引用返信 編集キー/
■38325 / inTopicNo.15)  Re[14]: javascriptでconfirmでの条件分岐
□投稿者/ nao (16回)-(2009/07/10(Fri) 21:20:12)
No38267 (みきぬ さん) に返信
> サーバ側コードで TextBox.ClientID プロパティを使って ID を取得し、その文字列をスクリプトとして出力するようにしてください。
>
> & "var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _
>
> こんな感じ(サーバ側から TextBox を jNo_txt で参照できるとしてだけど)

みきぬさん有難うございます。

やってみたのですが・・・
何も起こりません・・・。
OKを押下した場合には、alertは出ます。


〜aspx側Html〜
<asp:DropDownList ID="skubun" runat="server" Style="z-index: 119; left: 112px; position: absolute;
top: 48px" AutoPostBack="True" TabIndex="2">
<asp:ListItem></asp:ListItem>
<asp:ListItem>1:センタ採番(通常)</asp:ListItem>
<asp:ListItem>2:販社採番</asp:ListItem>
<asp:ListItem>3:ライン採番</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="jNo_txt" runat="server" Height="16px" MaxLength="4" Style="z-index: 101;
left: 112px; position: absolute; top: 80px" Width="96px" TabIndex="3"></asp:TextBox>

〜aspx.vb〜

Dim skubun As Integer = Left(Me.skubun.Text, 1) = 1 Dim msg As String
msg = ("新規に受注番号を取得して宜しいですか?")
If skubun Then
     Dim Script As String
Script = "<script type='text/javascript'>" _
& "if( confirm( """ & msg & """ ) ){" _
& " alert( 'A処理' );" _
& "}else{" _
& "var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _
& "jNo_txt.disabled = false;" _
& "jNo_txt.focus();" _
& "}" _
& "</script>"

      ClientScript.RegisterStartupScript(Me.GetType(), "kubun", Script)
    Else
jNo_txt.ReadOnly = False
jNo_txt.Focus()
End If


〜発行した際のhtmlソース抜粋〜
<select name="skubun" onchange="javascript:setTimeout('__doPostBack(\'skubun\',\'\')', 0)" id="skubun" tabindex="2" style="z-index: 119; left: 112px; position: absolute;
top: 48px">
<option value=""></option>
<option selected="selected" value="1:センタ採番(通常)">1:センタ採番(通常)</option>
<option value="2:販社採番">2:販社採番</option>
<option value="3:ライン採番">3:ライン採番</option>

</select>
<input name="jNo_txt" type="text" maxlength="4" readonly="readonly" id="jNo_txt" tabindex="3" style="height:16px;width:96px;z-index: 101;
left: 112px; position: absolute; top: 80px" /> <div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWKAKdwraBCQLJpZvYBwK8vdLlCgKZ5NzPBAKZ5NzPBAL24rGuDgK8tKztAwLLyIflCwL7i56XDAKcnb+HAwKG+YvaDgKl+Y6DCQK1gIqnAwKTr/TuDQKrm/kVAtnm/sIDAt31gYsIAuzR/rYIAuzRkpIBAqnU7OEDAqrU7OEDAtvsppcOAr2LspUDAvfqqgYCp/++hwMCr7KasgQCuOidtQ0C/fLiegKmwoujAgKQ4bDMAQKa+oeECwK3882lAQL/kOpuAoW5lB4Cs7/I9QsCns2MjgsCx+ee/QgCuKXlqAcCx+f2JALH5+KuDs2GpGBoANMCN5MwVomyTvN7Te0m" /> </div> <script type='text/javascript'>if( confirm( "新規に受注番号を取得して宜しいですか?" ) ){ alert( 'A処理' );}else{var jNo_txt = document.getElementById( 'jNo_txt' );jNo_txt.disabled = false;jNo_txt.focus();}</script></form>
</body>


何度も申し訳ございません。
よろしくお願いいたします。

引用返信 編集キー/
■38326 / inTopicNo.16)  Re[15]: javascriptでconfirmでの条件分岐
□投稿者/ もりお (8回)-(2009/07/10(Fri) 22:20:22)
2009/07/10(Fri) 22:29:59 編集(投稿者)
No38325 (nao さん) に返信
ぬおお・・完全に見落としていました。
jNo_txt.readOnly = false を追加してみてください。
jNo_disabled は、いらないかもです。

Dim Script As String = _
    "<script type='text/javascript'>" _
    & "if( confirm( """ & msg & """ ) ){" _
    & "    alert( 'A処理' );" _
    & "}else{" _
    & "    var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _
    & "    jNo_txt.readOnly = false;" _
    & "    jNo_txt.disabled = false;" _
    & "    jNo_txt.focus();" _
    & "}" _
    & "</script>"

引用返信 編集キー/
■38418 / inTopicNo.17)  Re[16]: javascriptでconfirmでの条件分岐
□投稿者/ nao (17回)-(2009/07/13(Mon) 21:33:03)
No38326 (もりお さん) に返信

もりおさ〜〜〜〜〜ん♪

出来ました〜〜〜〜〜\(o⌒∇⌒o)/ ワァイ♪♪♪

Dim Script As String
Script = "<script type=""text/javascript"" > " _
& "if( confirm( """ & msg & """ ) ){" _
& "var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _
& "jNo_txt.setAttribute( ""value"", """ & jNo & """ );" _
& "var torimatome_txt = document.getElementById('" & torimatome_txt.ClientID & "' );" _
& "torimatome_txt.focus();" _
& "}else{" _
& "var jNo_txt = document.getElementById( '" & jNo_txt.ClientID & "' );" _
& "jNo_txt.readOnly = false;" _
& "jNo_txt.disabled = false;" _
& "jNo_txt.focus();" _
& "}" _
& "</script>"


想うようなことができました。
他にもconfirmでのif文は必要なのでとっても助かりました。
やりたいことはあってもjavascriptだとそれぞれ書き方や”や’等色々とあって
参考になるものがなかなかなく・・・
そのまま書いてもエラーになったりと・・・

本当にありがとうございました。
Thanks ☆☆** v(o^▽^o)v**☆☆ Thanks


また、他にもコメントくださった
やじゅさん、??さん、みきぬさん
本当にありがとうございました。


今後もまた質問が色々と出てくるかもしれませんが、よろしくお願いいたします。


本当は、今日、会社へ行って試した際にすぐに書きたかったのですが・・・
ブロックされてしまい・・・
返信遅くなりましてすいません。


ただ・・・「”」「’」のくくり方?がよくわかってません・・・
上記の( """ & msg & """ )も('" & msg & "')に変更しても同じだし・・・
前者は会社の人がそう使用していたのでそのまま使用していたのだけれど・・・^^;

とりあえず、解決です。


有難うございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -