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>
これは、本質的に作成しているスクリプトへの呼び出しを登録するための固有の名前です。 "確認する(blah、blah)"私はこの問題を抱えている誰もが学ぶことができるように私が投稿する状況を把握しました。 –
さて、問題を解決してソリューションを掲載しました。 – Zeddy