2017-10-20 61 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

工作完美。謝謝.. –