RequiredFieldValidator
запускается клиентским событием onchange
.Звучит так, как будто вы ожидаете, что оно будет вызвано событием onblur
, так что вкладка вдали от текстового поля вызовет проверку.
Прежде чем перейти к этому, я подозреваю, что это то, что вы видите, ичтобы убедиться, что он действительно работает, вам нужно вызвать onchange
.Для этого введите текст в текстовое поле, уберите вкладку, вернитесь к нему, очистите текстовое поле и снова уберите вкладку.Теперь вы должны увидеть сообщение об ошибке RequiredFieldValidator, поскольку его содержимое изменилось на .
. Возврат к проблеме onblur
.Чтобы выполнить это поведение, вы можете добавить атрибут onblur
в свой код и заставить его вызывать метод JavaScript ValidatorValidate(...)
следующим образом:
void Page_Load(object sender, EventArgs e)
{
txtSummary.Attributes.Add("onblur", "ValidatorValidate(" + reqvalSummary.ClientID + ")");
}
В качестве альтернативы, вы можете выполнить то же самое в разметке.Во-первых, добавьте этот блок сценария:
<script type="text/javascript">
function rfvBlur() {
var rfv = document.getElementById("<%= reqvalSummary.ClientID %>");
ValidatorValidate(rfv);
}
</script>
Во-вторых, обновите разметку <asp:TextBox.../>
, добавив onblur="rfvBlur()"
, чтобы она теперь выглядела так:
<asp:TextBox ID="txtSummary" runat="server" TextMode="MultiLine" Width="700px" CausesValidation="true"
CssClass="txtStyle" Font-Names="Arial" MaxLength="1000" ValidationGroup="Valtxt"
TabIndex="2" Rows="4" onblur="rfvBlur()" />
Еще одна опциячтобы проверить всю группу ValidationGroup, добавив следующий атрибут в разметку <asp:TextBox.../>
(дополнительный блок скрипта не требуется):
onblur="Page_ClientValidate('Valtxt')"