Интересно, почему функция 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;
}
}
Почему выбранное значение подтверждения всегда принимается как истинное?
Интересно, чего я пропустил.
Проблема в том, что код, установленный в 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...';
});
UseSubmitBehavior="true"
полный HTML-код, но если вы хотите, чтобы кнопкаUseSubmitBehavior="true"
<form>
попробуйте установитьUseSubmitBehavior="true"
на свою кнопку в дополнение к моему ответу.