编辑: document.getElementById('submit').disabled='disabled';
如果我把它替换为return false;
就可以了,但由于某些原因,它还会在未使用用户名时禁用该按钮。
以下是检查用户名可用性的基本脚本。
如果已经使用了用户名,我如何阻止提交表单?
理想情况下,我想弹出一个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,我怎么能解决这个问题?
答案 0 :(得分:1)
您可以将属性添加到表单元素
onsubmit="return validate();"
如果JavaScript被禁用,那么你无能为力。这就是为什么必须在服务器端应用数据验证/实例化。
答案 1 :(得分:1)
这应该可以解决问题。成功时重新启用按钮并在失败时将其禁用。
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
}