Остановить запуск ModalPopupExtender из-за JavaScript

#javascript #asp.net #ajax

#javascript #asp.net #ajax

Вопрос:

ASP.net проект с использованием ajax (.net 2.0). У меня есть modalpopupextender, который связан с кнопкой изображения:

 <asp:ImageButton ID="ibStartNow" runat="server" ImageUrl="images/StartNow.gif" 
    ToolTip="Save expense report header and start now!" CausesValidation="False" 
    OnClientClick="CheckReason(); NoPrompt();" />
  

Обратите внимание на событие OnClientClick существует функция js с именем CheckReason, эта функция просто проверяет текстовое поле с именем reason, чтобы увидеть, ввел ли кто-нибудь что-либо. Если они этого не сделали, я не хочу, чтобы ModalPopupExtender действительно открывался.

Вот эта функция JavaScript, хотя и уродливая 🙂

 function CheckReason()
{
    var txtReason = document.getElementById('txtReason');
    var txtReasonVal = txtReason.value;
    if (txtReasonVal.length > 0 amp;amp; txtReasonVal != 'Enter the reason for creating this expense report...')
    { 
        return true;
    }
    else
    {
        txtReason.style.borderStyle='solid';
        txtReason.style.borderColor='red';
        return false;
    }
}
  

Проблема в том, что даже если я нажму else и верну false, расширитель модального всплывающего окна все равно откроет модальное всплывающее окно. Мне это нужно, чтобы он не открывал всплывающее окно.

Ответ №1:

Посмотрим, поможет ли это

 OnClientClick="javascript:var ret = CheckReason(); NoPrompt(); return ret;"
  

Комментарии:

1. Нет, это не делает этого. Я думаю, что это скорее проблема с тем, как работает modalpopupextender, поскольку в вашем коде нет ничего плохого.