AJAX调用后,addClass()函数无法正常工作

时间:2017-10-20 23:47:46

标签: jquery ajax twitter-bootstrap-3

jQuery

$(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()函数不起作用,我想在此类的Bootstrap输入类中添加类.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>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

修复标记中的ID。您有一个额外的#

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

当您使用Id jQuery选择器时,它将采用'#'+theIdOfTheDomElement格式。如果您有一个额外的#作为dom元素id属性值的前缀字符,它将无效。所以即使你尝试$("##check").addClass("has-error");,这也行不通。

因此,请从id属性值中删除额外的#前缀。

这不仅仅是前缀字符。如果您在id属性值的任何位置都有#,则在使用Id选择器时它将无效。

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