2017-10-20 27 views
-1

jQuery的addClass()函数的AJAX调用后不工作

$(document).ready(function() 
{  
$("#uname").keyup(function() 
{ 
    var name = $(this).val(); 
    if(name.length > 3) 
    { 
    $("#result").html('checking...'); 
    $.ajax({ 
    type : 'POST', 
    url : '<?php echo base_url('users/check') ?>', 
    data : $(this).serialize(), 
    success : function(data) 
     { 
       $("#result").html(data); 
       $("#check").addClass("has-error"); // this doesn't seem to work 
      } 
    }); 
    return false; 

    } 
    else 
    { 
    $("#result").html(''); 
    } 
}); 
}); 

Ajax响应成功的工作,除了addClass()功能不工作,我想补充.has-error类来引导该输入类:

<div id="#check" class="form-group col-lg-6"> 
    <label>Username</label> <span id="result"></span> 
    <input type="text" name="uname" id="uname" class="form-control" id="" value=""> 
</div> 

我该如何解决这个问题?

回答

0

修复您标记中的标识。当您使用标识jQuery选择你有一个额外#

<div id="check" class="form-group col-lg-6"> 

,这将是在格式'#'+theIdOfTheDomElement。如果你有额外的#作为你的dom元素id属性值的前缀字符,它将不起作用。所以即使你尝试$("##check").addClass("has-error");,这也行不通。

因此,从id属性值中删除多余的#前缀。

它不只是前缀字符。如果您在ID属性值中的任何位置有#,那么在使用Id选择器时它将不起作用。

我还在您的uname输入元素中看到了2个id属性实例。你可能也想解决这个问题。

+0

工作完美。谢谢.. –