2012-07-04 7 views
1

У меня есть поле на странице asp.net, для которой я использовал RequiredFieldValidator.Проверка на стороне клиента

<tr> 
    <td align="left" style="width: 130px"> 
    <asp:Label ID="LblPagename" runat="server" Text="Page Name " CssClass="label"></asp:Label><font 
     color="red"> *</font> 
    </td> 
    <td align="left" style="width: 1087px" class="layout-grid"> 
    <asp:TextBox ID="TxtPageName" runat="server" MaxLength="50" ></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" Display="Dynamic" 
     ValidationGroup="Save" ControlToValidate="TxtPageName" ForeColor="Red" 
     ErrorMessage="Please enter Page Name."></asp:RequiredFieldValidator> 
    </td> 
</tr> 

на экономии я позволяю CauseValidation="true" для той же ValidationGroup, как упоминалось выше

<tr> 
    <td colspan="3" align="center" style="width: 1193px"> 
    <asp:ImageButton ID="btnMenu" CausesValidation="true" ValidationGroup="Save" ImageUrl="~/Images/Save.png" 
     runat="server" OnClick="btnMenu_Click" OnClientClick="SaveFunctionalities();"/> 
    &nbsp;&nbsp; &nbsp;&nbsp; 
    <asp:ImageButton ID="btnCancelMenu" ImageUrl="~/Images/btnCancel.png" runat="server" 
     OnClick="btnCancelMenu_Click" /> 
    </td> 
</tr> 

Но сохранить, наряду с сообщением об ошибке на пустое поле, спасбросок вызывается.

То же самое работает на других страницах.

Единственная разница в том, что здесь у меня есть функция вызова функции javascript на OnClientClick.

Это вызывает некоторые проблемы?

ответ

1

Убедитесь, что SaveFunctionalities(); возвращает логическое значение в зависимости от того, произошла ли ошибка или нет. Если все в порядке, то верните true - если есть какие-либо ошибки, верните false.

Затем обновите OnClientClick передать этот переменный возврат к кнопке ..

OnClientClick="return SaveFunctionalities();" 

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

UPDATE

Из кода, публикуемый в комментариях по @Richa, вы всегда возвращаетесь false, независимо от того, что возвращается проверка.

Ваша функция должна выглядеть следующим образом ...

function SaveFunctionalities() { 
    if (Page_ClientValidate()) { 
    ... 
    return true; 
    } else { 
    return false; 
    } 
} 
+0

Я сделал следующие изменения в функции JS: функция SaveFunctionalities() {если (Page_ClientValidate()) {вар DDL = document.getElementById (» <% = lbMenu.ClientID%> "); var hdn = document.getElementById ("<% = hdnRight.ClientID%>"); hdn.value = ""; for (var i = 0; i Richa

+0

@Richa, позвольте мне дважды проверить ... вы хотите, чтобы btnMenu отправил обратно на сервер **, если ** стандартная проверка на странице сообщает об ошибках? – freefaller

+0

Я хочу, чтобы btnMenu вызывал метод btnMenu_Click (метод cs) только после того, как все проверки были пройдены .. никакие поля не пустые..SaveFunctionances просто сохраняет значения в скрытом поле .. если это называется ... это нормально .. – Richa

Смежные вопросы