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;
});

フォームが送信されたときに AJAX チェックが行われることを 100% 確信することはできないため、とにかくユーザー名がサーバー上で利用可能であることを確認する必要があります。

于 2012-06-09T13:24:19.097 に答える