1

まず、これが私のコードです

私の問題は、登録フォームを使おうとするとコードが呼び出されないことです。

私はこれを数回調べましたが、同じページでログインスクリプトを使用している問題を見つけることができないようですが、それは問題ないようです。

login.js

$(function() {

    // Expand
    $("#open").click(function(){
        $("div#panel").slideDown("slow");

    }); 

    // Collapse
    $("#close").click(function(){
        $("div#panel").slideUp("slow"); 
    });     

    // Change Text
    $("#toggle a").click(function () {
        $("#toggle a").toggle();
    });     

// Login proccess Start
  $('.error').hide();
   $(".bt_login").click(function() {
      // validate input
      $('.error').hide();
      var username = $("input#username").val();
        if (username == "") {
        $("label#username_error").show();
        $("input#username").focus();
        return false;
      }

        var password = $("input#password").val();
        if (password == "") {
        $("label#password_error").show();
        $("input#password").focus();
        return false;
      }
      var rememberMe = $("input#rememberMe").val();

// correct data sent
  var dataString = 'username='+ username + '&password=' + password + '&submit=Login' + '&rememberMe=' + rememberMe;
  alert (dataString);return false;
  $.ajax({
    type: "POST",
    url: "../../inc/files/login.php",
    data: dataString,
    success: function() {

  return false;
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      $('#login_form').html("<div id='message'></div>");
      $('#message').html("<h2>!</h2>")
      .append("<p>Error Details; <br /> Status: ", textStatus, " <br /> Error thrown: ", errorThrown,"</p>")
      .hide()
      .fadeIn(1500, function() { 
      $('#message').append("<img id='cross' src='images/cross.png' />"); 
      }); 
  return false;;
}
  });
    });

// End login proccess

//Registration Process start

  $("bt_register").click(function() {
      // validate inpu
      $('.error').hide();
      var username2 = $("input#username2").val();
        if (username2 == "") {
        $("label#username2_error").show();
        $("input#username2").focus();
        return false;
      }
//      var re = new RegExp("/[^a-z0-9\-\_\.]+/i");
//      if(re.test(username2) = true) {
//      $("label#username2_error2").show();
//        $("input#username2").focus();
//        return false;
//    }
        var password2 = $("input#password2").val();
        if (password2 == "") {
        $("label#password2_error").show();
        $("input#password2").focus();
        return false;
      }
      var email = $("input#email").val();
        if (password == "") {
        $("label#email_error").show();
        $("input#email").focus();
        return false;
      }

// correct data sent
  var dataString = 'username='+ username2 + '&password=' + password2 + '&submit=Register' + '&email=' + email;
  alert (dataString);return false;
  $.ajax({
    type: "POST",
    url: "../../inc/files/login.php",
    data: dataString,
    success: function() {

  return false;
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      $('#reg_form').html("<div id='message'></div>");
      $('#message').html("<h2>!</h2>")
      .append("<p>Error Details; <br /> Status: ", textStatus, " <br /> Error thrown: ", errorThrown,"</p>")
      .hide()
      .fadeIn(1500, function() { 
      $('#message').append("<img id='cross' src='images/cross.png' />"); 
      }); 
return false;
   }

});


  });
});

Jqueryを呼び出すhtmlフォーム

<div id="reg_form">
    <form class="clearfix" action="" >
        <h1>Register Here!</h1>             
        <label class="grey" for="username">Username:</label>
        <input class="text-input" type="text" name="username2" id="username2" value="" size="23" />
        <label class="error" for="username2" id="usernamename2_error">This field is required.</label> 
        <label class="error" for="username2" id="usernamename2_error2">Your username contains invalid characters!</label>
        <label class="grey" for="email">Email:</label>
        <input class="text-input" type="text" name="email" id="email" size="23" />
        <label class="error" for="email" id="email_error">This field is required.</label> 
        <label class="grey" for="password2">Password:</label>
        <input class="text-input" type="password" name="password2" id="password2" size="23" />
        <label class="error" for="password2" id="password2_error">This field is required.</label> 
        <input type="submit" name="submit" value="Register" class="bt_register" />
    </form>
</div>
4

4 に答える 4

1

変化する

$("bt_register").click(function() {

$(".bt_register").click(function(event) {
    event.preventDefault();

2番目のエラーはif (password == "") {、クリックイベントに対して変数.bt_registerを定義しなかったためです。password

あなたができることは、すべてのクリックイベント関数がそれを使用できるように定義することですvar password;global

ここでコードを変更しました。これは私が行ったことであり、渡された文字列を警告しています。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(function()
{
    var password;
    $("#open").click(function()
    {
        $("div#panel").slideDown("slow");
    }); 

    $("#close").click(function()
    {
        $("div#panel").slideUp("slow"); 
    });     

    $("#toggle a").click(function ()
    {
        $("#toggle a").toggle();
    });     

    $('.error').hide();

    // Start login proccess

    $(".bt_login").click(function(event)
    {
        event.preventDefault();
        $('.error').hide();

        var username = $("input#username").val();
        if (username == "")
        {
            $("label#username_error").show();
            $("input#username").focus();
            return false;
        }

        password = $("input#password").val();

        if (password == "")
        {
            $("label#password_error").show();
            $("input#password").focus();
            return false;
        }
        var rememberMe = $("input#rememberMe").val();

        var dataString = 'username='+ username + '&password=' + password + '&submit=Login' + '&rememberMe=' + rememberMe;
        alert (dataString);return false;

        $.ajax(
        {
            type: "POST",
            url: "../../inc/files/login.php",
            data: dataString,
            success: function()
            {
                return false;
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
                $('#login_form').html("<div id='message'></div>");
                $('#message').html("<h2>!</h2>").append("<p>Error Details; <br /> Status: ", textStatus, " <br /> Error thrown: ", errorThrown,"</p>").hide().fadeIn(1500, function() { 
                    $('#message').append("<img id='cross' src='images/cross.png' />"); 
                }); 
                return false;;
            }
        });
    });

    // End login proccess

    //Registration Process start

    $(".bt_register").click(function(event)
    {
        event.preventDefault();
        // validate inpu
        $('.error').hide();
        var username2 = $("input#username2").val();

        if (username2 == "")
        {
            $("label#username2_error").show();
            $("input#username2").focus();
            return false;
        }

        var password2 = $("input#password2").val();
        if (password2 == "")
        {
            $("label#password2_error").show();
            $("input#password2").focus();
            return false;
        }

        var email = $("input#email").val();
        if (password == "")
        {
            $("label#email_error").show();
            $("input#email").focus();
            return false;
        }

        // correct data sent
        var dataString = 'username='+ username2 + '&password=' + password2 + '&submit=Register' + '&email=' + email;
        alert (dataString);return false;

        $.ajax(
        {
            type: "POST",
            url: "../../inc/files/login.php",
            data: dataString,
            success: function()
            {
                return false;
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
                $('#reg_form').html("<div id='message'></div>");
                $('#message').html("<h2>!</h2>").append("<p>Error Details; <br /> Status: ", textStatus, " <br /> Error thrown: ", errorThrown,"</p>").hide().fadeIn(1500, function()
                {
                    $('#message').append("<img id='cross' src='images/cross.png' />"); 
                }); 
                return false;
            }
        });

    });
});

</script>
<div id="reg_form">
    <form class="clearfix" action="" >
        <h1>Register Here!</h1>             
        <label class="grey" for="username">Username:</label>
        <input class="text-input" type="text" name="username2" id="username2" value="" size="23" />
        <label class="error" for="username2" id="usernamename2_error">This field is required.</label> 
        <label class="error" for="username2" id="usernamename2_error2">Your username contains invalid characters!</label>
        <label class="grey" for="email">Email:</label>
        <input class="text-input" type="text" name="email" id="email" size="23" />
        <label class="error" for="email" id="email_error">This field is required.</label> 
        <label class="grey" for="password2">Password:</label>
        <input class="text-input" type="password" name="password2" id="password2" size="23" />
        <label class="error" for="password2" id="password2_error">This field is required.</label> 
        <input type="submit" name="submit" value="Register" class="bt_register" />
    </form>
</div>
于 2013-02-22T08:31:49.967 に答える
0

代わりにi suggest you to do this with submit form:

$("#reg_form").children('form').submit(function (e) {
    e.preventDefault(); //<------------stops the submission
    // validate inpu
    $('.error').hide();
    var username2 = $("input#username2").val();
    if (username2 == "") {
        $("label#username2_error").show();
        $("input#username2").focus();
        return false;
    }

    var password2 = $("input#password2").val();
    if (password2 == "") {
       $("label#password2_error").show();
       $("input#password2").focus();
       return false;
     }

     var email = $("input#email").val();
     if (password == "") {
       $("label#email_error").show();
       $("input#email").focus();
       return false;
     }

     // correct data sent
     var dataString = $(this).serialize();
     alert(dataString);

     $.ajax({
        type: "POST",
        url: "../../inc/files/login.php",
        data: dataString,
        success: function () {
           alert('success.');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
          $('#reg_form').html("<div id='message'></div>");
          $('#message').html("<h2>!</h2>")
              .append("<p>Error Details; <br /> Status: ", textStatus, " <br /> Error thrown: ", errorThrown, "</p>")
              .hide()
              .fadeIn(1500, function () {
                  $('#message').append("<img id='cross' src='images/cross.png' />");
              });
              return false;
        }

    });
 });
于 2013-02-22T08:42:40.127 に答える
0

わかりました、あなたの var dataString は適切にフォーマットされていないと思います

この構文を試すことができます

data: '{LiveID: "' + Live_ID + '", CategoryID: "' + Category_ID + '"}',
于 2013-02-22T10:44:32.803 に答える
-1

これにより、ラベルを作成し、定義済みの関数にリンクさせることができました。ドキュメントの本文内で、ラベルの前に関数を含めます。

<label class="error" for="username2" id="usernamename2_error2">Your username contains invalid characters!
機能(オープン)

于 2013-02-22T08:34:32.103 に答える