2011-11-12 14 views
3

私はajaxと完全なリクエストを同じ形式で持っています。マウスをクリックすると入力フィールドのAjaxが起動し、マウスのクリック直後に同じ入力フィールドでEnterキーを押すと、下に示すような厄介なエラーが表示されます。ajaxと完全なリクエストを混ぜる

"Http Transportはステータスコード0を返しました。これは、通常、ajaxと完全な要求を混在させた結果です。これは、通常、パフォーマンスとデータの整合性の理由から望ましくありません。

私の場合、入力フィールドはajaxを使用するラジオボタンです。 enterを押すと完全な要求が発生しています。 私はBalusCのJavascript関数を使っていましたが、これは私のために働くevent.stopPropagation()を持っていて、テキスト入力フィールド用でした。それはまた、ドロップダウンリストのために働いた。 同じevent.stopPropagation()がラジオボタンに対して機能していません。 参照のためBalusC's answerを確認できます。以下は

私はif節内のステートメントが実行されていることを確認するために放火犯を使用しますが

<h:form id=blah...... onkeypress="enterToChange(event)"> 
.... 
</h:form> 

のJavascript機能

function enterToChange(event){ 
if (event.keyCode==13 && event.target.id.match('radiobutton_id'){ 
event.stopPropagation(); // Don't bubble up. 
event.preventDefault(); // Prevent default behaviour (submitting the form). 
event.target.onchange(); // Trigger onchange where key was actually pressed. 
} 
} 

を動作するようには思えないコードの私の作品ですエラーが何らかの理由でポップアップし、すぐにページ全体がレンダリングされます。私はどんな場合でもエラーを回避する必要があります。

いずれの回答も高く評価されています。 ありがとう

+1

それは私のために働く。おそらく、あなたは ''コンポーネントに対して 'onchange =" submit() "'をしたでしょうか?あなたの意見を示してください。 – BalusC

+0

問題が解決しました。入力を押すとsubmit()が呼び出され、送信ボタンのonclickはありません。そのためJavascript関数がfalseを返すように追加されました。コードBalusC –

+0

のおかげで、これを回答として投稿し、それを受け入れてください。そうすることは大丈夫です。 – WTK

答えて

2

Enterは送信にバインドされています。したがって、イベントkeyCodeが13で、イベントターゲットIDがラジオボタンのIDと一致する場合、送信ボタンのonclickイベントはfalseを返すJS関数を起動する必要があります。

関連する問題