Подтверждение JavaScript на элементе управления ASP.Net - PullRequest
4 голосов
/ 25 октября 2011

Я работал над приложением ASP.Net C #, я хотел создать элемент управления Button, когда пользователь нажимает на кнопку, всплывающее окно подтверждения JavaScript, а затем получает логическое значение от пользователя (Да / Нет) для выполнения дальнейших действийв событии кнопки onClick.

мой текущий подход был добавлен к кнопке события OnClientClick и OnClick, где OnClientClick запускает функцию JavaScript, а значение (Да / Нет) сохраняется в элементе управления HiddenField для использования во время события OnClick.

Это что-то вроде следующих фрагментов кода:

function CreatePopup(){
            var value = confirm("Do you confirm?");
            var hdn1 = document.getElementById('hdn1');
            hdn1.Value = value;
        }

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" OnClientClick="CreatePopup()"/>
<asp:HiddenField ID="hdn1" runat="server" />

Есть ли лучший способ для этого?заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 25 октября 2011

Измените функцию CreatePopup (), чтобы она возвращала логическое значение:

function CreatePopup()
{
    return confirm("Do you confirm?");
}

А затем убедитесь, что вы вернули это значение из OnClientClick() в кнопке:

<asp:Button ... OnClientClick="return CreatePopup();" />

Используя этот метод, метод OnClick() сработает только в том случае, если метод OnClientClick() вернет true.

0 голосов
/ 25 октября 2011

Почему вы хотите сохранить значение подтверждения JavaScript в скрытом поле?Просто верните false в вашей функции JavaScript, когда значение подтверждения равно «нет», чтобы предотвратить отправку формы.Если значение cnfirm равно yes, вернуть true, чтобы разрешить отправку формы.В вашем коде в методе button_click вам не нужно проверять, что произошло в вашем подтверждении JavaScript, так как форма никогда не будет отправлена, если пользователь скажет «нет».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...