0

我有表格来检查用户名可用性只有在用户名可用时表单才应该提交数据,但在这两种情况下表单提交数据都是代码。

<script type="text/javascript">
$(document).ready(function () //When the dom is ready 
{
  $("#username").change(function () { //if theres a change in the username textbox
    var username = $("#username").val(); //Get the value in the username textbox
    if (username.length > 3) //if the lenght greater than 3 characters
    {
      $("#availability_status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...');
      //Add a loading image in the span id="availability_status"
      $.ajax({ //Make the Ajax Request
        type: "POST",
        url: "http://localhost/Testtt/wp-content/plugins/Realestate Redirection/check_realitycode_availablity.php",
        //file name
        data: "username=" + username,
        //data
        success: function (server_response) {

          $("#availability_status").ajaxComplete(function (event, request) {

            if (server_response == '0') //if ajax_check_username.php return value "0"
            {
              $("#availability_status").html('<img src="available.png" align="absmiddle"> <font color="Green"> Available </font>  ');
              //add this image to the span with id "availability_status"
            } else if (server_response == '1') //if it returns "1"
            {
              $("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');

            }

          });
        }

      });

    } else {

      $("#availability_status").html('<font color="#cc0000">Username too short</font>');
      //if in case the username is less than or equal 3 characters only 
    }



    return false;
  });

});
</script>

这是用于检查可用性的 JQuery。

这是我的表格

<form action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" name="reality" method="post" id="reality_form" >
            <input type="hidden" name="reality_hidden" value="Y">  
            Website Url:<input type="text" name="website_url" value="" />
            Listing Code: <input type="text" name="rlt_code" id="username" /><span id="availability_status"></span>
            <input type="submit" name="submit" value="submit" id="submit" />
</form>

我试图从过去几个小时中找到解决方案,但没有结果。请告诉我需要在代码中添加什么if(server_response == '1')以防止在这种情况下提交表单

4

1 回答 1

0

<form>好吧,您最初可以做一些事情,比如用一个类来标记:

<form class='no-submit' action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" name="reality" method="post" id="reality_form" >

然后您的“更改”处理程序将在成功时清除它:

$("#username").change(function () {
  $('#reality_form').addClass('no-submit');
  // ...
  if (server_response == '0')
    $('#reality_form').removeClass('no-submit');

然后,为表单添加一个“提交”处理程序:

$('#reality_form').submit() {
  if ($(this).hasClass('no-submit'))
    return false;
});

无论如何,您都必须检查用户名在服务器上是否可用,因为您不能 100% 确定在提交表单时 AJAX 检查是否已经完成。

于 2012-06-09T13:24:19.097 回答