2017-07-26 28 views
0

ASP/VB.netで奇妙な動作が発生します。 VBコードからJSを呼び出そうとしていますが、何も起こっていません。私はいくつかのページで同様の(ほとんど同じ)メソッドを使って素晴らしい結果を得ています。しかし、これでは動作しません。 私はユーザーにyes/noタイプの質問をしています。結果はJSが発火することはありませんが、ユーザーansersがVBコードのVBコードからJavaScriptコードを呼び出すときに問題が発生する

<asp:HiddenField runat="server" id ="confirm_value"/> 

を「はい/継続」ならば、JSはもう一度ボタンをクリックし、confirm_valueという隠しフィールドに保存されています。私は、コメントされたコードのように、単純な "こんにちは"アラートコールを作成しようとしましたが、どちらもうまくいきませんでした。 JSコードが実行されないようにするにはどうすればよいですか?

VBコード:

If -1000 < RadNumericTextBox1.Text Then 
     If confirm_value.Value <> "Yes" Then 
      Dim cs As ClientScriptManager = Page.ClientScript 
      ' Check to see if the startup script is already registered. 
      If (Not cs.IsStartupScriptRegistered(Me.GetType(), "ConfirmScriptRXOrder")) Then 
       Dim cstext1 As String = "Confirm('This item has less in stock than your order. Do you want to order it anyway?');" 
       'Dim cstext1 As String = "alert('Hi there!');" 
       cs.RegisterStartupScript(Me.GetType(), "ConfirmScriptRXOrder", cstext1, True) 
      End If 
      'return here, JS will re-click submit button after okaying the message,. 
      Return 
     Else 
      confirm_value.Value = "No" 
      Mycart(ddCyl.SelectedValue.ToString, ddSph.SelectedItem.Text, ddCyl.SelectedItem.Text, RadNumericTextBox1.Text, tbtray.Text) 

      RadGrid1.DataBind() 
     End If 
    End If 

JSコード:私は、Javaには専門家だ

<script type = "text/javascript"> 
    function Confirm(message) { 
     if (confirm(message)) { 
      var x = document.getElementById('<%= confirm_value.ClientID%>'); 
      x.value = 'Yes'; 
      document.getElementById('<%=btnOrder.ClientID%>').click(); 
     } else { 
      var x = document.getElementById('<%= confirm_value.ClientID%>'); 
      x.value = 'No'; 
     } 
    } 
</script> 

答えて

1

私自身の質問には答えたくありませんが、私が最初に投稿したものでは解決策は明らかではなく、実際に投稿したコードとは関係ありませんでした。 私はページを送信ボタン、JS、およびVBコールに切り捨てました。出来た!私はそれが壊れるまでコードを追加し始めました。 問題はボタンがasp:updatepanel内にあることでした。私は、更新パネルの外にボタンを移動し、私が望むように働いた!視覚的にバランスのとれたようには見えませんでしたが、... このような状況がある場合は、この記事を覚えておいてください!

0

...

が、あなたのJava関数が呼び出されるべきではない ""確認"の代わりにConfirmScriptRXOrder "を入力してください。

+0

これは、本質的に作成しているスクリプトへの呼び出しを登録するための固有の名前です。 "確認する(blah、blah)"私はこの問題を抱えている誰もが学ぶことができるように私が投稿する状況を把握しました。 –

+0

さて、問題を解決してソリューションを掲載しました。 – Zeddy

関連する問題