Клиентская функция CustomValidator не запускается для пустого текстового поля

89
8

Я издевался над очень простой страницей, и я абсолютно зациклен на том, почему javascript не срабатывает, когда я вставляю между двумя текстовыми полями: -


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" inherits="Checkout_test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>c</title>
<script type="text/javascript">
function checkthisvalue(source, args) {
alert('hello');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbl1" AssociatedControlID="txtUsername" Text="1:" runat="server" />
<asp:TextBox runat="server" CssClass="username" ID="txtUsername" ValidationGroup="vg"></asp:TextBox>
<asp:CustomValidator Enabled="true" ID="cvUsername" Display="Dynamic" ValidationGroup="vg" ControlToValidate="txtUsername" EnableClientScript="true" ClientValidationFunction="checkthisvalue" ValidateEmptyText="true" runat="server">*</asp:CustomValidator>
<asp:Label ID="lbl2" AssociatedControlID="txtPassword" Text="2:" runat="server" />
<asp:TextBox runat="server" CssClass="username" ID="txtPassword"></asp:TextBox>
<asp:CustomValidator Enabled="true" ID="cvPassword" Display="Dynamic" ControlToValidate="txtPassword" EnableClientScript="true" ClientValidationFunction="checkthisvalue" ValidateEmptyText="true" runat="server"></asp:CustomValidator>
</div>
</form>
</body>
</html>


Обратите внимание, что оба CustomValidators имеют ValidateEmptyText = true


Я пробовал это в IE и Chrome без везения.

спросил(а) 2021-01-25T13:31:26+03:00 5 месяцев назад
1
Решение
110

Я думаю, это не проблема пустого текста. CustomValidator не будет срабатывать при навигации по вкладкам, только если вы не измените значение управления. (попробуйте поместить значение в свой TextBox, перейдите со вкладкой, вернитесь, чтобы освободить TextBox, и снова перейдите с вкладкой. Будет активирован CustomValidator)


Когда вы думаете об этом, наличие валидаторов, стреляющих по простой навигации на вкладке, будет несколько беспокоить пользователя.

Во всяком случае, валидаторы загораются при отправке формы (если вы удалите атрибуты ValidationGroup при первых TextBox и Validator) и измените значения, что они должны делать.


Надеюсь, это поможет,

ответил(а) 2021-01-25T13:31:26+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема