2013-07-09 9 views
17

AngularJSのダイアログでEnterキーを処理する推奨方法は、フォーム>タグと、ダイアログ内の送信ボタンを配置することです。

十分ですが、Angular-UIとその$ダイアログサービスを使用する場合は、Enterキーを押したときにフォームがサイレントモードになります。それを傍受する方法はありません。 ng-clickまたはng-submitにハンドラをアタッチしても、フォームはw/oを閉じるだけで結果を返します。

は私が

を行う必要がある何か他のものはあります[編集]

は、私は私の「キャンセル」ボタンがタイプ「ボタン」であったことを明示的に指定する必要がありました、それを解決しました。 デフォルトでは「送信」のようですか?

だから本当の問題は私のhtmlフォームのスキルを除いてありませんでした:)

+1

... HTMLフォームの問題やウェブのスキルの私の不足だったが、あなたは(あなたのコードの一部を示すことができました私はまだこの特定の組み合わせを試していませんが、動作するはずです(おそらく、キー入力時に閉じないように設定する必要があるダイアログオプションがあり、明示的に閉じたときに閉じるだけですコード内)。 – shaunhusain

+0

問題が見つかりました。上記を参照してください。 –

+2

あなたが類似したSOの投稿を見つけられなかった場合は、あなた自身の質問に答える必要があります。 – shaunhusain

答えて

29

自分の質問に答えるために。 ボタンはデフォルトでsubmit(?)しているようですが、明示的にtype = "button"に設定すると、フォーム入力フィールドにenterを押したときにポストバックが発生しません。

<form> 
    <input type="text" ... /> 
    <button type="button" ng-click=...>Cancel</button> 
    <button type="submit" ng-click=...>OK</button> 
</form> 

このように、入力フィールドでEnterキーを押すと、[OK]ボタンのng-clickがトリガーされます。

そして、あなたのhtmlハッカーはすでに理解しているとして、これは本当にダイアログもangularjsとは何の関係もなかった、それは

+2

ありがとう、あなたは私を救った。 – fmquaglia

関連する問題