1

所以我有一个文本字段(

<input type="text"/>

) 我想在用户按下输入/提交时运行一个函数。

现在,onSubmit 看起来是最好的解决方案。可悲的是,这需要一个表单(据我所知),并且该表单在我提交时会重新加载页面。它添加了一些我不喜欢的额外代码。我也尝试过 onKeyPress,但这会在用户每次输入内容时做出反应(请参阅我之前的问题)。我尝试在函数本身中寻找“输入”键,但效果不佳。而且我不想每次有人在该字段中键入内容时都运行该函数。

所以,总结一下:我想在用户提交文本字段时运行一个函数。我该怎么做呢?有没有一种方法可以在不使用表单的情况下使用“onSubmit”功能?当我对某事发表评论时,Facebook 之类的页面会做什么?

我实际上是在尝试制作 Facebook 评论功能。这是我到目前为止的代码:

var facebook_footer = '<button onClick="fbLike(\''+post_id+'\')"> Like </button> <form onSubmit="fbComment(\''+post_id+'\')"><input type="text" id="' + post_id + '" /></form>';

function fbComment(post_id) {
  var message = document.getElementById(post_id).value;
  console.log('Trying to comment on: ' + post_id);

  FB.api('/'+ post_id +'/comments?message=' + message, 'post', function(response) {
    if (!response || response.error) {
      alert('Error occured. ID: ' + post_id);
    } else {
      alert('Great! It worked. ID: ' + post_id);
    }
  });
}

也许您对 FBapi 有所了解,并且知道这里的标准程序是什么?

无论如何,提前感谢您的答案。

4

2 回答 2

4

最好的方法是拥有该表格,并使用onSubmit. 为了防止表单实际提交(并使用您自己的 JS 函数),只需return false从该函数即可。

于 2013-03-18T22:05:45.310 回答
0

根据应用程序,onBlur 或 onChange。onChange 在字段值更改时触发。onBlur 在字段失去焦点时触发,无论值如何。

于 2013-03-18T22:19:08.760 回答