Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取未捕获类型错误:无法读取属性';toLowerCase';未定义的_Javascript_Jquery_Forms_Validation_Blur - Fatal编程技术网

Javascript 获取未捕获类型错误:无法读取属性';toLowerCase';未定义的

Javascript 获取未捕获类型错误:无法读取属性';toLowerCase';未定义的,javascript,jquery,forms,validation,blur,Javascript,Jquery,Forms,Validation,Blur,在我提问之前,我已经在stackoverflow和其他网站上搜索了这个问题,大多数网站都提到你的“这个”并没有指向你试图从中获得价值的东西 这是因为它们中的大多数都有一个不同的函数,该函数是从它们所针对的元素调用的。但我的情况有点不同,这并没有解决我的问题 我的HTML代码是一个表单,其中一个字段是用户名,并包含此代码 <label for="username">Username</label> <inp

在我提问之前,我已经在stackoverflow和其他网站上搜索了这个问题,大多数网站都提到你的“这个”并没有指向你试图从中获得价值的东西

这是因为它们中的大多数都有一个不同的函数,该函数是从它们所针对的元素调用的。但我的情况有点不同,这并没有解决我的问题

我的HTML代码是一个表单,其中一个字段是用户名,并包含此代码

<label for="username">Username</label>
                     <input type="text" id = "t_username" name="t_username" placeholder="Enter Teacher Username" value="" class="form-control" >
                     </div>
                     <span id = "availability"></span>
我的PHP代码如下:

if (isset ($_POST['username']))
{
  $user = $_POST['username'];
  if ($db->username_check($user) != 0) // $db is an object of Database class 
  {
    echo '<span class = "text-danger">Username already exists</span>';
  }
  else 
  {
        echo '<span class = "text-success">Username is available</span>';
  }

}
我尝试过使用这两种方法,但仍然出现同样的错误。有谁能帮我解决这个问题吗

我试过(但没有好结果)

我也试着改变我的功能

$(#'t_username').on("blur", function(){.....*Everything here* ..... }); 

您没有正确使用传递数据的方法

您需要使用
用户名
,但是您使用的是
t_用户名
,它将
未定义
,并且不会超过
最大调用堆栈大小
,或者
toLowerCase
错误将在控制台中抛出

将您的
ajax
jQuery代码更改为此。一切都会好起来的

$('#t_username').blur(function() {

  //Username
  var username = $(this).val();
  
  console.log(username)
  
  //Ajax
  $.ajax({
    url: "action.php",
    method: "POST",
    data: {
      user_name: username  //this needed a fix
    },
    dataType: "text",
    success: function(html) {
      $('#availability').html(html);
    }
  });
});

最后一个是语法错误。但除此之外,您是否尝试过
$(this).val()
?A将非常有帮助。问题只在于JavaScript/FrontEnd,PHP代码似乎还可以。实际的问题是什么?对不起,你的问题没有任何意义,你要实现什么,你在哪里使用
toLowerCase
@一直都是。这就是问题所在,我的代码中没有使用任何toLowerCase函数。问题是,我正在尝试验证用户名是否已被使用或未使用AJAX,并且每当我在测试代码时从“用户名”字段“失去焦点”时,它都会给出此错误。@SakibKhan,你能帮我做个解释吗,因为从我的角度来看,这是不可复制的。@Praveenkumarpuroshothaman我想我已经给出了足够的代码了吗?我完全可以在这里提供完整的代码,但这将是漫长和不必要的。。我认为我的问题在于一些小语法(很可能与“this”有关),这就是我试图寻求帮助的地方。。。。是的,$(this).val()应该可以工作,但实际上不行(我在上面共享的代码中使用了$(this).val())
var username = $(this.target).val();   -> This called an error of exceeded stack limit (because of some never ending recursive function I think) 

var username = $('#t_usernmae').val(); -> This did the same exceeded stack limit error 
$(#'t_username').on("blur", function(){.....*Everything here* ..... }); 
$('#t_username').blur(function() {

  //Username
  var username = $(this).val();
  
  console.log(username)
  
  //Ajax
  $.ajax({
    url: "action.php",
    method: "POST",
    data: {
      user_name: username  //this needed a fix
    },
    dataType: "text",
    success: function(html) {
      $('#availability').html(html);
    }
  });
});