Javascript 无法捕获输入表单提交中未定义的错误
使用parse.com和javascript/jquery 下面的代码应该在“friendsearch”输入框中捕获用户的输入 单击submit按钮后,它应该查询parse.com后端并确定用户是否存在。目前,我一直在“friendName”中得到“undefined”返回,我无法发现为什么或是什么原因导致了错误Javascript 无法捕获输入表单提交中未定义的错误,javascript,jquery,parse-platform,Javascript,Jquery,Parse Platform,使用parse.com和javascript/jquery 下面的代码应该在“friendsearch”输入框中捕获用户的输入 单击submit按钮后,它应该查询parse.com后端并确定用户是否存在。目前,我一直在“friendName”中得到“undefined”返回,我无法发现为什么或是什么原因导致了错误 <form class="Find Friend"> <div class="error" style="display:none">&l
<form class="Find Friend">
<div class="error" style="display:none"></div>
<input type="text" id="friendsearch" placeholder="Find Friend" class="input-field" required/>
<button type="submit" class="btn btn-login">Find</button>
</form>
我认为问题在于在何处分配friendName=$(this.val() 尝试使用e.target获取对文本输入框中当前值的引用。我不确定它是否是e.target,但我相当确定您希望在e参数中包含一个属性 尝试$(e.target).val()或$(e.currentTarget).val()类似的内容,而不是$(this.val() 当我试图找出某些设置不正确的原因时,我也喜欢做的是在chrome调试器中设置断点。在这种情况下,您可以将“调试器”放在希望浏览器打开的代码中。在你的例子中,你可以这样写:
$('#friendsearch').on('keyup', function(e) {
debugger
friendName = $(this).val();
});
在Chrome开发工具中,您可以检查e的值并确定可用的属性和值。好的,我修改了您的代码,以便friendName变量实际包含表单上输入框的内容。问题是,您的原始代码试图在输入框加载到DOM之前访问它的内容 为您的HTML尝试以下操作:
<form class="Find Friend">
<div class="error" style="display:none"></div>
<input type="text" id="friendsearch" placeholder="Find Friend" class="input-field" />
<button id="find_button" type="submit" class="btn btn-login">Find</button>
</form>
我在这里更新了live JSFIDLE示例:
在jsFiddle示例中,当您单击按钮时,Parse对象打印{“error”:“请使用POST请求”},但至少您的friendName变量包含您在框中键入的名称!希望这能帮您完成剩下的工作。感谢您提供的详细答案和重新调试的提示,到目前为止,我还无法解决这个问题……我在这里对您的代码做了一个jsFiddle:当我在文本框中键入时,会指定friendName的值。你到底在哪里找到它?谢谢,你可以看到我在这里的意思,试着搜索一个叫“dave”的用户谢谢!一个多星期来一直在努力解决这个问题!所有前端都可以工作,但我在sumbitting上收到一条parse-1错误消息,但我认为这需要记录在另一个问题下。
<form class="Find Friend">
<div class="error" style="display:none"></div>
<input type="text" id="friendsearch" placeholder="Find Friend" class="input-field" />
<button id="find_button" type="submit" class="btn btn-login">Find</button>
</form>
var friendName;
function findFriend(){
friendName = $('#friendsearch').val();
alert(friendName);
var friendFinder = Parse.Object.extend("_User");
var query = new Parse.Query(Parse.User);
query.equalTo("username", friendName); // find users that match
query.find({
success: function(friend) {
alert(friendName);
},
error: function (error) {
//Show if no user was found to match
alert("Error: " + error.code + " " + error.message);
}
});
}
$('#find_button').click(function(e){
findFriend();
});