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