#javascript #asp.net #button #onclick #confirm
#javascript #asp.net #кнопка #onclick #подтвердите
Вопрос:
Есть ли способ заставить следующий код работать? В принципе, когда я нажимаю на btnOne, если a равно true, я ожидаю, что появится окно подтверждения. И если я нажму да, тогда он выполнит метод btnTwo. В противном случае он ничего не сделает. На данный момент он не вызывает всплывающее окно, и я не уверен, почему. Может кто-нибудь, пожалуйста, указать мне правильное направление? или, возможно, дайте мне знать другой способ достижения этой цели.
Любая информация будет высоко оценена.
Например:
public void btnTwo(object sender, EventArgs e)
{
//Do some processing
}
public void btnOne(object sender, EventArgs e)
{
if( a == true )
btnTwo.Attributes["onClick"] = "return confirm('test');"
btnTwo(sender, new EventArgs());
}
Комментарии:
1. Что такое
a
? И где вы вызываете что-либо на стороне сервера?2. предполагая, что a — это некоторая переменная, которая была где-то установлена. да, это со стороны сервера
Ответ №1:
Я думаю, что вы смешиваете много клиентской и серверной сторон? Не могли бы вы проверить «a» (скрытое поле) на стороне клиента?
Или после проверки значения в коде, добавленном в сценарий запуска, с подтверждением, а затем на да «нажмите» вторую кнопку в javascript.
Protected Sub btnSecond_Click(sender As Object, e As System.EventArgs) Handles btnSecond.Click
Me.lblInfo.Text = "SecondClick is done!"
End Sub
Protected Sub btnFirst_Click(sender As Object, e As System.EventArgs) Handles btnFirst.Click
a = 10
Dim action As String = "<script> if(confirm('sure ?')){ document.getElementById('" amp; btnSecond.ClientID amp; "').click()} </script>"
If (a > 5) Then
Page.ClientScript.RegisterStartupScript(Me.Page.GetType(), "startConfirm", action)
End If
End Sub
И разметка:
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="btnFirst" />
</br>
<asp:Button runat="server" ID="btnSecond" />
<asp:Label runat="server" ID="lblInfo" />
</div>
</form>
Ответ №2:
Убедитесь, что код достигнут, и используйте OnClientClick
вместо:
protected void Page_Load(object sender, EventArgs e)
{
bool a = true;
if (a)
btnTwo.OnClientClick = "return confirm("Are you sure?");";
}
Комментарии:
1. Спасибо, Джеймс. Я попробовал, но всплывающее окно подтверждения не появилось.