У меня есть три текстовые поля:кнопку Включение, если Textboxes исправить
Имя пользователя Email Пароль
Использование JavaScript Я выполнил несколько регулярных выражений и некоторые стандартной проверки на всех текстовых полях, чтобы проверить, если введенный текст правильно в соответствии с мои стандарты, вот мой код до сих пор:
<asp:TextBox ID="username_txt" runat="server" placeholder="Username" maxlength="15" onkeyup="checkUsername(this.value)"></asp:TextBox>
<asp:Label ID="username_lbl" runat="server"></asp:Label>
asp:TextBox ID="email_txt" runat="server" placeholder="Email Address" onkeyup="checkEmail(this.value)"></asp:TextBox>
<asp:Label ID="email_lbl" runat="server"></asp:Label>
<asp:TextBox ID="password_txt" type="password" placeholder="Password" maxlength="20" onkeyup="countPassword(this.value)" runat="server"></asp:TextBox>
<asp:Label ID="password_lbl" runat="server"></asp:Label>
<asp:Button ID="register_btn" runat="server" Text="Register" OnClick="register_btn_Click" />
function countPassword(password)
{
password_txt = document.getElementById('<%= password_txt.ClientID %>');
password_lbl = document.getElementById('<%= password_lbl.ClientID %>');
register_btn = document.getElementById('<%= register_btn.ClientID %>');
if (password.length < 6)
{
password_lbl.innerHTML = 'Password must be at least 6 characters';
password_lbl.style.color = "red";
password_txt.style.outline = "1px solid red"
}
else
{
password_lbl.innerHTML = 'Perfect!';
password_lbl.style.color = "green";
password_txt.style.outline = "1px solid green"
}
}
function checkEmail(email)
{
email_lbl = document.getElementById('<%= email_lbl.ClientID %>');
email_txt = document.getElementById('<%= email_txt.ClientID %>');
register_btn = document.getElementById('<%= register_btn.ClientID%>');
if (email == '') {
email_lbl.innerHTML = 'Email cannot be blank';
email_lbl.style.color = "red";
email_txt.style.outline = "1px solid red"
}
else if (!email.match(/^\[email protected]\S+\.\S+$/))
{
email_lbl.innerHTML = 'You must enter a valid email address';
email_lbl.style.color = "red";
email_txt.style.outline = "1px solid red"
}
else
{
email_txt.style.outline = "1px solid green"
email_lbl.innerHTML = 'Perfect';
}
}
function checkUsername(username)
{
username_lbl = document.getElementById('<%= username_lbl.ClientID %>');
username_txt = document.getElementById('<%= username_txt.ClientID %>');
register_btn = document.getElementById('<%= register_btn.ClientID %>');
if(username == '')
{
username_lbl.innerHTML = 'Username must be at least 4 characters';
username_lbl.style.color = "red";
username_txt.style.outline = "1px solid red"
}
else
{
username_txt.style.outline = "1px solid green"
username_lbl.innerHTML = 'Perfect';
}
}
Теперь проблема, которую я имею, что мне нужна кнопка регистра должны быть включено, если все 3 из текстовых полей достигают «еще» в каждой из них. Однако, если 2 текстовых поля доходят до инструкций else, но 1 не делает, то кнопка регистра останется отключенной.
Я просто борюсь с логикой о том, как добиться этого, потому что я не могу сделать другое событие для каждого из текстовых полей?
Правда, но это потребует 3 параметра в функции, которая затруднит определение того, какое текстовое поле ввело данные? – mogorilla
Если вы имеете в виду прохождение значений, вы можете проверить значения через их значение элемента, а не передавать значение в функцию. Поэтому проверьте пароль по document.getElementById ("password_txt") и т. Д. Для каждого из них. – Organiccat
Является ли их не другим способом делать то, что я пытаюсь достичь? – mogorilla