将旧函数更新为Jquery 1.11.3

时间:2015-07-25 00:10:10

标签: javascript php jquery ajax

以下代码通过与check.php进行通信来验证用户名(如果没有错误,则回答' OK'如果没有错误)并更改字段css类。 它在jQuery 1.2.6中正常运行,我尝试了许多noConflict()变通方法让1.11.3与它一起运行,但无济于事。我是jQuery(全能)编程新手,但我相信这个问题是在这个代码中的折旧函数...也许在$ .ajax位。

任何有关如何更新1.11.3(或更好的想法)的建议将不胜感激。
$(document).ready(function() {

  $("#username").change(function() {

    var usr = $("#username").val();

    if (usr.length >= 4) {
      $("#username").addClass("object_thinking");
      $("#status").html('');

      $.ajax({
        type: "POST",
        url: "check.php",
        data: "username=" + usr,
        success: function(msg) {

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

            if (msg == 'OK') {
              $("#username").removeClass('object_thinking');
              $("#username").removeClass('object_error');
              $("#username").addClass("object_ok");
              $("#status").html('');
            } else {
              $("#username").removeClass('object_ok');
              $("#username").addClass("object_error");
              $("#status").html("<font color='red'>" + 'Username already in
use</font>');
            }
          });
        }
      });
    } else {
      $("#status").html('<font color="red">The username should have at least  
<strong>4</strong> characters.</font>');
      $("#username").removeClass('object_ok');
      $("#username").addClass("object_error");
    }
  });    

2 个答案:

答案 0 :(得分:1)

我根本没有对此进行测试,但我知道语法有效......只是稍微清理了一下你的功能。

$(document).ready(function() {

  var $username = $('#username');
  var $status = $('#status');

  $username.change(function() {

    var usr = $username.val();

    if ( usr.length >= 4 ) {

      $username.addClass('object_thinking');
      $status.empty();

      $.ajax({
        async: false,
        type: 'POST',
        url: 'check.php',
        data: 'username=' + usr
      })
      .done(function(msg) {

        if ( msg === 'OK' ) {

          $username.removeClass('object_thinking').removeClass('object_error').addClass('object_ok');
          $status.empty();

        } else {

          $username.removeClass('object_ok').addClass('object_error');
          $status.html('<span style="color: red;">Username already in
use</span>');

        }

      });

    } else {

      $status.html('<span style="color: red;">The username should have at least <strong>4</strong> characters.</span>');
      $username.removeClass('object_ok').addClass('object_error');

    }

  });

});

答案 1 :(得分:0)

var $j = jQuery.noConflict(); 

终于通过了。我没有将$ j添加到函数的所有部分。 非常感谢你的帮助和建议!