onSubmit没有表格

时间:2013-03-18 22:03:52

标签: javascript html forms facebook-graph-api

所以我有一个文本字段(

<input type="text"/>

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

现在,onSubmit看起来是最好的解决方案。遗憾的是,这需要一个表单(据我所知),当我提交时,该表单会重新加载页面。它增加了一些我不喜欢的额外代码。 我也尝试了onKeyPress,但每次用户输入内容时都会对此做出反应(参见我之前的问题)。我试过在函数本身中寻找'enter'键,但这并没有奏效。每次有人在现场输入内容时,我都不想运行该功能。

所以,总结一下:我想在用户提交文本字段时运行一个函数。我该怎么做呢?有没有办法可以在不使用表单的情况下使用'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有一些了解,并知道这里的标准程序是什么?

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

可能这会对你有所帮助。试着制作test.htm文件,粘贴这段代码,看看这是不是你想要的。 display html form values in same page after submit

答案 2 :(得分:0)

取决于应用程序,onBlur或onChange。当字段的值发生变化时,onChange将触发。无论价值如何,当场地失去焦点时,onBlur就会开火。