【发布时间】:2015-05-27 06:48:01
【问题描述】:
我有一个简单的表单,可以一次显示 2 个错误代码,但我只需要显示一个(见下文)。如果用户输入 invalid 电子邮件,则应该只显示 #1 ,无效由表单输入文本required pattern=... 确定。如果电子邮件是有效,则错误 #2 应该是唯一可见的错误。它是从 PHP 结果生成的 - 通过表单的 html 文件中的 ajax 调用此 PHP 文件并返回显示为错误 #2 的结果。
我的问题:如何应用 IF 语句或类似语句来确定是否 表单的输入字段的模式是否满足。如果它不满意(无效),那么也许我们可以通过以某种方式改变它的 CSS 来使其字体大小为 0px,这将使只有 #2 可见。如果满意,那么我们可以继续以某种方式隐藏错误#2 的 div。
这是表单(错误 #2 的隐藏 div “formResponse”):
<form id="loginform" name="loginform" method="POST" class="login" action="#">
<input name="emailaddy" id="emailaddy" type="email" class="feedback-input" placeholder="My Email" required pattern="[a-z0-9!#$%&'*+/=?^_`{|}~)" required title="Invalid Email"/>
<div id="formResponse" style="display: none;"></div>
<button type="submit" name="loginsubmit" class="loginbutton">Login</button>
</form>
和css:
div.error, div.error-list, label.error, input.error, select.error, textarea.error {
color: #D95C5C!important;
border-color: #D95C5C!important;
font-size: 18px;
}
更新的 AJAX(通过 reggie 的回答) - 注意:我认为 if(ema == null || ema == '') 不起作用,因为即使用户输入乱码,它仍然会显示 both 错误.但是如果我把它改成if(ema == 'a'),它会正确地隐藏formResponse div,只显示label.error。如果该字段无效/为空,我需要它隐藏 formResponse - 但 null 似乎不起作用。此外,else 函数不起作用,这意味着 label.error div 不会由于某种原因隐藏。或许null 应该换成正则表达式检查?
更新的 AJAX: 为什么将“hello@example.com”视为 null?
<script>
$(document).ready(function() {
$("#loginform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "login/login.php",
dataType:"text",
data: {email: $('#emailaddy').val(), loginsubmit: 'yes'},
success:function(result){
if(result === "redirect"){
window.location.replace("http://www.example.com/login/private.php");
}
else{
//var re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
var email = $('#emailaddy').val();
var pattern = ".+\\@@.+\\..+";
var valid = email.match(pattern);
alert(valid);
if (valid == null) {
}
else {
$("#formResponse").html("That email address is not registered.").show();
}
}
}
})
});
});
</script>
【问题讨论】:
-
您的问题不清楚。请重新描述您的问题,记住读者不知道错误 #1 和 #2 是什么。该图像很有用 - 请解释得更清楚一点。另外,您是否有任何用于正则表达式模式匹配的代码,或者您需要帮助吗?
标签: php jquery html forms error-handling