【发布时间】:2013-07-28 16:10:12
【问题描述】:
我有一个代码可以检查数据库中的用户名是否可用,该代码可以显示电子邮件已存在的错误消息,但是当我按下提交按钮时,它会将用户名插入数据库中,即使用户名已经存在。
这是我的代码:
function validateForm(){
<script>
$(document).ready(function () {
$("#Name").change(function () {
var username = $("#Name").val();
var msg = $("#msg");
if (username.length > 2) {
$("#msg").html('Checking availability');
$.ajax({
type: "POST",
url: "check_availability.php",
data: "Name=" + username,
success: function (messagess) {
$("#msg").ajaxComplete(function (event, request) {
if (messagess.indexOf('OK') > 0) {
$("#Name").removeClass("exists");
$("#Name").addClass("avail");
msg.html('the user name is available</font>');
} else {
$("#Name").removeClass("avail");
$("#Name").addClass("exists");
msg.html('the user name is already exists');
}
});
}
});
}
});
});
}
</script>
</head>
<body>
<form action="" method="post" name="form" onsubmit="return validateForm()">
User Email:
<input type="text" name="Name" id="Name" value="" />
<span id="msg"></span>
</form>
</body>
</html>
【问题讨论】:
-
始终检查服务器端。即使使用了 JavaScript 验证,也很容易绕过它。如果用户名已在使用中,则在服务器端发送错误。永远不要仅仅依赖来自客户端的数据已经过验证。
-
另外,请使用我们的搜索功能。见how to disable submit button with jquery