Javascript 无法捕获输入表单提交中未定义的错误

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

使用parse.com和javascript/jquery

下面的代码应该在“friendsearch”输入框中捕获用户的输入

单击submit按钮后,它应该查询parse.com后端并确定用户是否存在。目前,我一直在“friendName”中得到“undefined”返回,我无法发现为什么或是什么原因导致了错误

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