>编辑:如果我把它放在return false;
,document.getElementById('submit').disabled='disabled';
就可以解决问题,但由于某些原因,当用户名未被占用时,它也会禁用该按钮。
以下是检查用户名可用性的基本脚本。
如果用户名已被占用,如何防止提交表单?
理想情况下,我想弹出一个JS警报框。
我试图将其添加到 JS 中,但没有奏效:
document.getElementById('submit').disabled
我也试图在表单本身中添加onclick="return validate();"
,但也没有运气:表单仍然可以提交。
.HTML
<form id="edit" action="edit.php" method="post">
<fieldset>
<label>Username</label><input type="text" class="input" name="username"
id="username"/><span id="status"></span>
<button type="submit" id="submit" value="add">Save</button>
</fielset>
</form>
脚本
<script type="text/javascript">
$(document).ready(function() {
$("#username").change(function() {
var username = $("#username").val();
var msgbox = $("#status");
if (username.length >= 4) {
$("#status").html('<img src="images/gif/ajax-loading.gif">');
$.ajax({
type: "POST",
url: "ajax_check.php",
data: "username=" + username,
success: function(msg) {
if (msg == 'OK') {
msgbox.html('<img src="/images/yes.png">');
return true;
} else {
msgbox.html(msg);
return false;
}
}
});
} else {
$("#status").html('<img src="/images/no.png">too long!');
return false;
}
return false;
});
});
edit.php
和ajax_check.php
仅包含一些 SQL 查询。
此外,一些用户在他们的浏览器上禁用了 JavaScript,我该如何解决这个问题?
这应该可以解决问题。成功时重新启用该按钮,失败时禁用该按钮。
if (msg == 'OK') {
msgbox.html('<img src="/images/yes.png">');
document.getElementById('submit').disabled = false; //enable submit
} else {
msgbox.html(msg);
document.getElementById('submit').disabled = 'disabled'; //disable submit
}
您可以添加到表单元素的属性
onsubmit="return validate();"
如果 JavaScript 被禁用,那么你对此无能为力。这就是为什么必须在服务器端应用数据验证/隔离的原因。