#asp.net #validation #client-side
#asp.net #проверка #на стороне клиента
Вопрос:
У меня есть веб-форма для отправки данных нового пользователя. В этом поле для пароля используется текстовое поле. Для этого требуется проверка, поскольку «оно должно содержать минимум 8 символов, по крайней мере, с одним не буквенно-цифровым символом». Я предоставляю проверку для этого в файле веб-конфигурации как:-
<membership defaultProvider="SQLMembershipProvider">
<providers>
<remove name="SQLMembershipProvider"/>
<add name="SQLMembershipProvider" connectionStringName="DAFEConnection" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="1" type="System.Web.Security.SqlMembershipProvider" applicationName="WBCPDA" requiresQuestionAndAnswer="false" enablePasswordReset="true" maxInvalidPasswordAttempts="4" passwordAttemptWindow="15" requiresUniqueEmail="true"/>
</providers>
</membership>
Эта проверка запускается на стороне сервера, т. е. когда я нажимаю кнопку «Отправить».
Я ХОЧУ ПРОВЕРИТЬ ТО ЖЕ САМОЕ на СТОРОНЕ КЛИЕНТА, т. Е. Как только он введет нежелательное значение в текстовом поле.
Пожалуйста, помогите
Ответ №1:
Самый быстрый способ сделать это — использовать средство проверки регулярных выражений. Смотрите документацию здесь.
Предложение Кангкана очень хорошее; не только идея использовать jQuery для этого; но в основном идея использования регулярного выражения для проверки того, что пароль находится в ожидаемом формате.
Дополнительный ответ:
Сложно найти самый быстрый способ предоставить вам точный код, который будет работать в вашем случае, поскольку вы не предоставили разметку; но вы могли бы сделать что-то похожее на это :
<asp:button id="btnSubmit" runat="server" OnClientClick="return validate_pass();" OnClick="YourHandler" />
И будет использовать функцию javascript.Средство проверки регулярных выражений. Смотрите документацию здесь.
function validate_pass()
{
//txtPassword is assumed to be the id of the password text field on your page
var passField = document.getElementById('<%=txtPassword.ClientID%>');
if(passField.value.length<8)
{
alert('Password must contain at least 8 characters');
return false;
}
return true;
}
Комментарии:
1. Icarus — Спасибо за беспокойство. Но решение, которое вы дали, заключается в том, чтобы написать мою собственную пользовательскую проверку для проверки текстового поля пароля на стороне клиента. На самом деле, я хочу реализовать проверку на стороне клиента во встроенном asp.net ‘SqlMembershipProvider’. Есть ли способ?
2. @Kings: Ну, да, вы могли бы использовать RegularExpressionValidator и прикрепить его к полю вашего пароля. Пример здесь: msdn.microsoft.com/en-us/library /…
3. lcarus: Я предполагаю, что невозможно использовать эту функциональность членства в sql для проверки на стороне клиента. Указанный вами метод возможен только, и это фактически проверка текстового поля пароля, а не проверка пароля участника.
4. спасибо в любом случае. пожалуйста, опубликуйте предыдущий код, который у вас был. я воспользуюсь этим для справки. спасибо
Ответ №2:
Вы можете использовать плагины javascript или jQuery для проверки правил ввода паролей на стороне клиента. Вы можете обратиться к http://plugins .jquery.com/plugin-tags/password-validation или http://bassistance.de/jquery-plugins/jquery-plugin-password-validation /. Вы даже можете развернуть свой собственный код javascript и использовать RegEx для проверки.