启用/禁用按钮 - 验证用户名是否存在

时间:2011-07-03 08:23:38

标签: ajax button

我正在尝试验证数据库中是否存在用户名。

我有一个包含文本字段和提交按钮的字段。提交按钮被禁用。

用户输入有效的用户名后,在检入数据库后,提交按钮将变为启用状态,文本字段边框将变为绿色,否则变为红色。

就在这里一切都很好,但是当用户改变主意并尝试更改用户名时,尽管文本字段指示了错误的用户名或格式,仍然会启用提交按钮。

如何将提交按钮更改为禁用。

我在我的代码中尝试了document.getElementById('register').disabled = false;

enter image description here

这是完整的代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="../style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script>
$(document).ready(function()
{
    $('#username').keyup(username_check);
}); 
function username_check()
{   
var username = $('#username').val();
if(username == "" || username.length < 14)
{
    $('#username').css('border', '2px #CCC solid');
    $('#tick').hide();
}
else
{
jQuery.ajax({
   type: "POST",
   url: "check.php",
   data: 'username='+ username,
   cache: false,
   success: function(response){
    if(response == 1){
        $('#username').css('border', '2px #C33 solid'); 
        $('#tick').hide();
        $('#cross').fadeIn();
        document.getElementById('register').disabled = true;
    }
    else
    {
        $('#username').css('border', '2px #090 solid');
        $('#cross').hide();
        $('#tick').fadeIn();
        document.getElementById('register').disabled = false;
     }

}
});
}
}
</script>
<style>
#username
{
    padding:3px;
    font-size:18px;
    border:3px #CCC solid;
}
#tick{display:none}
#cross{display:none}
</style>
</head>

<body>
<form action="" method="get" style="width:500px">
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="152">&nbsp;</td>
    <td width="348">&nbsp;</td>
  </tr>
  <tr>
    <td>Username</td>
    <td><input name="username" id="username" type="text" />
          <img id="tick" src="tick.png" width="16" height="16"/>
          <img id="cross" src="cross.png" width="16" height="16"/>
    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="register" id="register" value="Submit" disabled="disabled" /></td>
  </tr>
</table>
</form> 
</body>
</html>

3 个答案:

答案 0 :(得分:1)

$(“#register”)。attr(“禁用”,“禁用”)成功,$(“#register”)。removeAttr(“disabled”)失败......

希望这会有所帮助

答案 1 :(得分:0)

从jQuery.ajax调用的success函数中删除document.getElementById('register').disabled = true;

将keyup事件修改为:

$('#username').keyup(function()
{
document.getElementById('register').disabled = true;
username_check();
});

答案 2 :(得分:0)

document.getElementById('register').disabled = true;

它会起作用