Заблокировать событие asp:Button OnClick в C# из события OnClientClick в JavaScript?

У меня есть asp:Button на моей веб-странице, и он вызывает функцию JavaScript и метод с выделенным кодом. Последний звонит, чтобы перейти на другую страницу. В функции JavaScript я проверяю условие. Если это условие не выполняется, я хочу прервать навигацию, чтобы OnClick метод не вызывается. Это возможно?

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="SaveValues()"
    Text="Action1" CssClass="specialButton" runat="server" />

3 ответа

Решение

Блокировать OnClick от выполнения, просто верните false от OnClientClick:

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="return SaveValues();"
    Text="Action1" CssClass="specialButton" runat="server" />

При условии, что SaveValues также вернет логическое значение, независимо от того, было ли выполнено условие.

Да, это возможно

function SaveValues()
{
if(//check your codition here)
{
return true;
}
else
{
return false;
}
}

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="javascript:return SaveValues();" Text="Action1" CssClass="specialButton" runat="server" />

Возврате true или же falseВ соответствии с успехом JavaScript, следует запретить или включить кнопку отправки. Таким образом, вместо того, чтобы просто прикрепить его в конце OnClientClickтам, где вам нужно было бы обусловить его и немедленно сделать ваш вызов более уродливым, позвольте методу указать его рабочее состояние.

Другие вопросы по тегам