所以我有一个文本字段(
<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有一些了解,并知道这里的标准程序是什么?
无论如何,提前感谢答案。
答案 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就会开火。