获取未捕获的类型错误:无法读取未定义的属性"到小写"



在我问之前,我已经在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>

我的JQuery代码如下

$('#t_username').blur(function()
{
var username = $(this).val(); 
$.ajax({
url: "action.php", 
method: "POST", 
data: {user_name: t_username}, 
dataType: "text", 
success:function(html)
{
$('#availability').html(html); 
}
});
});

我的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>';
}
}

我的SQL函数是(在类中定义的(

public function username_check($user)
{
$sql = "SELECT * from tbl_teacher where username = :user";
$stmt = $this->conn->prepare($sql);
$stmt->execute(['user'=>$user]);
$t_rows = $stmt->rowCount();
return $t_rows;
}

我试过用这两种东西,但还是犯了同样的错误。有人能帮我解决这个问题吗?

我试过(但没有好结果(

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* ..... }); 

代码的JS Fiddle(我不知道如何创建它,但我在这里分享了一些代码(

您没有正确使用传递data

您需要使用username,但您使用的是t_username,它将是undefined,而不是maximum call stack size exceededtoLowerCase。控制台中会抛出错误。

将您的ajaxjQuery代码更改为此代码。一切都应该好起来。

$('#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);
}
});
});

最新更新