Javascript 无格式提交

Javascript 无格式提交,javascript,html,forms,facebook-graph-api,Javascript,Html,Forms,Facebook Graph Api,所以我有一个文本字段( )当用户按enter/提交函数时,我希望在其中运行该函数 现在,onSubmit看起来是最好的解决方案。遗憾的是,这需要一个表单(据我所知),当我提交时,表单会重新加载页面。它添加了一些我不喜欢的额外代码。 我也尝试过onKeyPress,但是每次用户输入内容时,它都会做出反应(参见我前面的问题)。我试着在函数本身中寻找“回车”键,但效果并不理想。我不想每次有人在字段中键入内容时都运行该函数 总之,我想在用户提交文本字段时运行一个函数。我该怎么做?有没有一种不用表单就

所以我有一个文本字段(


)当用户按enter/提交函数时,我希望在其中运行该函数

现在,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);
    }
  });
}
var facebook_footer='Like';
函数fbComment(post_id){
var message=document.getElementById(post_id).value;
log('试图对:'进行评论'+post_id);
api('/'+post_id+'/comments?message='+message,'post',函数(响应){
如果(!response | | response.error){
警报('发生错误。ID:'+post_ID);
}否则{
警报('太好了!它起作用了。ID:'+post_ID);
}
});
}
也许你对FBapi有一些了解,知道这里的标准程序是什么



无论如何,提前谢谢你的回答

最好的方法是使用该表单,并使用
onSubmit
。为了防止表单自行提交(并使用您自己的JS函数),只需从该函数返回false即可。

最好的方法是使用该表单,并使用提交上的
函数。为了防止表单自行提交(并使用您自己的JS函数),只需从该函数返回false即可。

取决于应用程序,onBlur或onChange。onChange在字段值更改时激发。当字段失去焦点时,无论值是多少,onBlur都会触发。

取决于应用程序,onBlur或onChange。onChange在字段值更改时激发。当字段失去焦点时,无论值是多少,onBlur都会触发。

1。表单不需要重新加载页面(如果OnSubmit返回FALSE)2。你不需要提交,你可以给我们一个3。如果您想在不使用表单的情况下使用表单元素,我建议document.getElementById(“NAME”)来计算不同的输入。1。好吧,我开始试着用表格。发生的事情是,该函数甚至没有时间运行。当我按下enter键并在url后添加了一个“?”时,页面刚刚重新加载。2.我不需要按钮,我只想让用户按enter键。3.我正在使用document.getElementById('id')获取textfield的内容。但问题是当用户按下“enter”键时运行函数。enter键是ASCII 13,因此类似的操作应该可以正常工作:onkeypress=“return myFuntion(event)”funtion myFunction(e){if(e.keyCode==13){return true;}else{return false;}1。表单不需要重新加载页面(如果OnSubmit返回FALSE)2。你不需要提交,你可以给我们一个3。如果您想在不使用表单的情况下使用表单元素,我建议document.getElementById(“NAME”)来计算不同的输入。1。好吧,我开始试着用表格。发生的事情是,该函数甚至没有时间运行。当我按下enter键并在url后添加了一个“?”时,页面刚刚重新加载。2.我不需要按钮,我只想让用户按enter键。3.我正在使用document.getElementById('id')获取textfield的内容。但问题是当用户按下“enter”键时运行函数。enter键是ASCII 13,因此类似的操作应该可以:onkeypress=“return myFuntion(event)”funtion myFunction(e){if(e.keyCode==13){return true;}else{return false;}当控件失去焦点且值发生更改时,将调度更改事件(除了某些浏览器中的单选按钮和复选框)。我不知道这将如何工作……因为我有一个textfield,我希望在用户“提交”它/按enter键时运行一个函数。“当字段的值更改时,onChange将激发”-不,请参阅@RobG的注释。改用onInput。当控件失去焦点且值已更改时(某些浏览器中的单选按钮和复选框除外),将调度更改事件。我不知道这将如何工作……因为我有一个文本字段,我希望在用户“提交”它/按enter键时运行一个函数。“onChange在字段值更改时激发"-不,请参阅@RobG的注释。改用onInput。我如何从函数返回false?当我尝试使用表单时发生的情况是,我一按enter键,页面就被重新加载。函数甚至没有时间运行……它在URL的末尾添加了一个“?”。如何防止表单更新页面?或者使用jQuery或event handler,或者简单地创建一个函数并通过放置类似于
的函数调用从
标记调用它。然后,在该函数中,简单地
返回false;
,表单就不会提交了。我的问题中包含了要运行的函数。我会将返回false放在哪里?如果我查看控制台,我可以看到我得到了这样一个答案:“尝试对:xxxxxx进行评论”,但是页面重新加载,最后一位(实际上是评论)没有运行。问题的主题是“没有表单的提交”。如果有表单,则很容易:可以调用
event.preventDefault()
在其提交的
,或者是,
返回false
。如果我们真的没有该表单,并且无法添加该表单,该怎么办?@ZeusZdravkov作者明确要求提供一种以非突兀方式提交数据的方法。不需要表单是因为它刷新了屏幕,这在我的回答中是
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);
    }
  });
}