我試圖驗證並要求從文本框的電子郵件地址中的字段,但我不能使用RequiredFieldValidator
和RequiredExpressionValidator
,因爲它們不起作用。如何使電子郵件地址同時需要和驗證?
我有一個腳本,如果用戶沒有在文本框中輸入內容,它將要求用戶輸入一些文本,它會變爲紅色的文本框,如果用戶之後輸入文本,它會得到綠色。但問題是他變綠,並且不顯示我的消息,即電子郵件地址的格式無效。
ASP.NET:
<FooterTemplate>
<asp:TextBox ID="txtbemail" runat="server"/>
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtbemail">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate = "txtbemail"
runat="server" ErrorMessage="*Necessário preencher"/>
</asp:RegularExpressionValidator>
<asp:LinkButton ID="LinkButton1" CommandName="AddNew" runat="server" CssClass="btn btn-large btn-info pull-right">
<i class="glyphicon glyphicon-plus"></i> Adicionar
</asp:LinkButton>
</FooterTemplate>
的JavaScript:
01:<script type="text/javascript">
//Define o intervalo para verificar os validadores
setInterval(function() { colorBorders() }, 100);
function colorBorders() {
if (typeof (Page_Validators) !== 'undefined') {
//Faz um loop para verificar os validadores
for (var i = 0; i < Page_Validators.length; i++) {
var validator = Page_Validators[i];
var control = document.getElementById(validator.controltovalidate);
//Verifica se o controle existe
if (control != null) {
// se o validador não for válido, coloque a borda vermelha, se for válida retornar à cor padrão
// elseif com a cor do rgb é necessário para impedir o desdobramento do cromo piscar
if (!validator.isvalid) {
control.style.borderColor = '#ff0000';
} else if (control.style.borderColor == "rgb(255, 0, 0)") {
control.style.borderColor = '#00ff00';
}
}
}
}
}
</script>
問題的屏幕截圖
來自電子郵件的文本框變綠,但不應該是因爲電子郵件不是有效的格式。它應該變紅。那麼,我怎樣才能同時要求和驗證,並顯示所需字段的消息和無效格式?
您的代碼工作正常,謝謝,但是當它顯示必填字段時,我可以將它更改爲紅色嗎?如果用戶輸入無效格式的電子郵件,我如何顯示另一條消息? – Monteiro
很高興我幫了忙。你當然可以。我編輯了我的答案,包括你需要的東西。請接受答案或贊成,因爲它有幫助。 :) –