Проблема Asp.net при получении значений «verify ()» в функции JavaScript

1

Интересно, почему функция Java Script не возвращает значение Confirm правильно.

У меня есть эта кнопка:

<asp:Button ID="btnSaveAgreement" runat="server" UseSubmitBehavior="false" Text="Save" OnClientClick ="ConfirmSaveWithoutSendEmail(this);" />

У меня есть эта функция Java Script:

 function ConfirmSaveWithoutSendEmail(btnToDisableWhileSubmitting)
    {           
        var IsPanelToSendEmailVisible = document.getElementById('<%= hfIsSendEmailPanelVisible.ClientID%>').value; 

        if (IsPanelToSendEmailVisible > 0)
        {
            //This section takes a confirmation "Ok/Cancel" to submit or not 
            //the data, the problem is that if I choose "Cancel", the code 
            //on the button is executed, the behavior I would except is such 
            //that selecting "Cancel"  the code on my button is not 
            //executed.

            return confirm("Do you want to save without send email?");
        }
        else
        {                
            //this section disable the button while submitting information, 
            //this section works fine.

            if (!Page_ClientValidate())
                return false;

            btnToDisableWhileSubmitting.disabled = true;
            btnToDisableWhileSubmitting.value = 'Saving...';
            return true;
        }
      }

Почему выбранное значение подтверждения всегда принимается как истинное?

Интересно, чего я пропустил.

Теги:

1 ответ

1
Лучший ответ

Проблема в том, что код, установленный в OnClientClick фактически ничего не возвращает, он просто выполняет функцию ConfirmSaveWithoutSendEmail но фактически не использует возвращаемое значение. Вы также должны установить UseSubmitBehavior="true" чтобы он отправил вашу форму клику. Попробуй это:

<asp:Button ID="btnSaveAgreement" runat="server" UseSubmitBehavior="true" Text="Save" OnClientClick="return ConfirmSaveWithoutSendEmail(this);" />

else часть вашего оператора if также не будет работать, потому что вы отключите кнопку, прежде чем она сможет отправить форму. Вам нужно будет отключить форму в событии submit формы:

document.getElementById('yourFormId')
    .addEventListener('submit', function() { 
        var submitBtn = document.getElementById('<%= btnSaveAgreement.ClientID %>');
        submitBtn.disabled = true;
        submitBtn.value = 'Saving...';
    });
  • 0
    Я поставил «return ConfirmSaveWithoutSendEmail (this)»; но теперь ничего не происходит при получении ответа «ОК / Отмена», в обоих случаях нет отправленных данных, и код, который работал «отключить кнопку при отправке информации», теперь не работает, кнопка все время продолжает «Сохранение» ... "и никогда не отправляет после нажатия.
  • 0
    Вы не UseSubmitBehavior="true" полный HTML-код, но если вы хотите, чтобы кнопка UseSubmitBehavior="true" <form> попробуйте установить UseSubmitBehavior="true" на свою кнопку в дополнение к моему ответу.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню