JavaScriptを使用して動的なフォーム送信 - エレガントなコードにどのように?

StackOverflow https://stackoverflow.com/questions/911430

質問

ここで問題があります:

私のページには、アイテムのセットを表示します。各項目は、(フォームの一部である)、それに関連付けられたチェックボックスを有します。ユーザーは、これらのチェックボックスを押して「削除」ボタンのいずれかをチェックすることがあります。同じページには、アイテムのExcelシートをアップロードします「アップロード」ボタンがあります。 現時点では言いたいことが、私のフォームアクションsumbits:「xyzAction」と私は(Strutsのアクションに類似)二つの異なるハンドラ持っている - 店舗の削除用と店舗をアップロードするための他の。

私はこれを行うための最善の方法は、これらのいずれかを実行して、JavaScriptのに頼ることであると言われています: 1))、アップロードのプレス上のフォームアクションの切り替えボタンを削除 - そこに呼び出す異なるアクションで。 2)/アップロードを削除し、単一のフォームに提出することを設定するために隠された変数「行為」を使用してください。サーバー側のアクションは行為を特定し、対応するアクションへの転送の世話をするでしょう。

アプローチは、(1) - 私にとって非常に洗練ようです。フォームアクションと遊ぶことは不必要と思われます。 アプローチ(2) - あなたのjavascriptがオフになり、いずれかの非常にエレガントではありませんされている場合、明らかに動作しないでしょう。

私を幸せにすることになる?これを行う第3の方法がなければなりませんか?

役に立ちましたか?

解決

あなたはHTML正しい最初に取得する必要があります。

次の2つの異なるアクションを持っているので、次の2つのフォームを持っている必要があります - 親指の良いルールは、各フォームには一つだけ送信ボタンを持つべきであるということです。これはHTMLのためのベストプラクティスであると、ページがJSやその他の詐欺なしで動作することを保証します。

あなたはこのように働くのページを持っていたら、あなたが必要とするUIを生成するためにDOMを操作するためのJSを使用しています。これは、UIにbehvourを追加するJSを使用し、控えめなJSのためのベストプラクティスです。

(あなたが本当に単一のフォームにあなたの行動を融合する場合、JSでのフォームの動作を変更することが最善の行動である。しかし、ユーザーがチェックボックスをチェックする場合に何が起こるかを検討して、彼らの心を変更し、確認のチェックボックスを残してファイルをアップロードします。あなたは、これは何も削除されないように注意する必要があります。)

他のヒント

あなたは二つの異なるアクションのために、2つの異なる形式を必要とするかもしれないように

これが鳴ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top