0

编辑: 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,我该如何解决这个问题?

4

2 回答 2

1

您可以将属性添加到表单元素

onsubmit="return validate();"

如果 JavaScript 被禁用,那么您将无能为力。这就是为什么必须在服务器端应用数据验证/验证的原因。

于 2013-09-15T04:21:46.700 回答
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
      }
于 2013-09-15T04:44:18.213 回答