1

だから私はテキストフィールドを持っています(

<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 についてある程度の知識があり、ここでの標準的な手順を知っているかもしれません。

とにかく、答えてくれてありがとう。

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 に答える