使用提交按钮AJAX实时检查可用性

  • test1.php

        $(document).ready(function(){ $('#username').change(function(){ var userName = $('#username').val(); $.post("getUserName.php", {userName: userName}, function(data){ $("#userNameCheck").html(data); }); }); $('#submit').click(function(){ //CODE HERE }); });    
    Username:
  • getUserName.php

     <?php include("db.php"); $userName = $_POST['userName']; $q = "select user_name from user where user_name = '".$userName."'"; $r = mysqli_query($dbc, $q); $num = mysqli_num_rows($r); if($num) { echo '
    Username taken. Please type another new one.
    '; } else { echo '
    You can use it.
    '; } ?>
  • 数据库(用户表)

    user_id user_name
    1阿里
    2阿布

  • 从上面:
    =>在文本框中键入“ ali ” – >显示“你可以使用它”绿色的消息。
    =>在文本框上键入ahmad – >以红色显示“Username taken …”消息。

  • 我的要求是如果消息是“你可以使用它”,请转到test2.php; 如果消息是“Username taken …”,则表单上没有提交。

  • 我的问题是当我点击提交按钮时如何控制“你可以使用它”或“用户名截取”消息?

不使用按钮的单击处理程序,而是使用表单提交事件。

 $(document).ready(function () { $('#username').change(function () { var userName = $('#username').val(); $.post("getUserName.php", { userName: userName }, function (data) { $("#userNameCheck").html(data); }); }); $('#addform').submit(function () { //if the text is `You can use it` allow the form submit else block it return $("#userNameCheck").html().trim() == 'You can use it'; }); }); 

还要确保在test2.php进行相同的validation,因为客户端validation可以是侧面步骤。