1

2つの送信ボタンがあるフォームがあります。

<form>
  ...
  <input type="submit" name="update" value="Update"></input>
  <input type="submit" name="clean"  value="Clean"></input>
</form>

クリックするボタンに応じて、2つの異なることを行う必要があります。updateいくつかのフォームデータを内部構造に追加し、フォームと内部構造cleanをクリーンアップします。

私が抱えている問題は、Evently/jQueryでこれら2つの異なるイベントをキャッチできないことです。フォーム/送信イベントを処理することはできますが、どのボタンが押されたかについての情報が得られません(jQueryのドキュメント「フォームがボタンを使用して送信されなかったため、送信ボタンの値はシリアル化されません」による)。

または、update/clickイベントとclean/clickイベントをキャッチしようとしましたが、それをキャッチするようにEventlyディレクトリツリーを構築することに成功しませんでした。これは、これらのイベントをキャッチしようとする私の現在の構造です。

evently/filterconf/_init/
evently/filterconf/_init/selectors/form
evently/filterconf/_init/selectors/form/clean
evently/filterconf/_init/selectors/form/clean/click.js
evently/filterconf/_init/selectors/form/update
evently/filterconf/_init/selectors/form/update/click.js
evently/filterconf/_init/mustache.html

しかし、それらclick.jsはトリガーされていません。これを解決する方法について何かアイデアはありますか?または、Eventlyでこれらの2つの送信ボタンを処理するための完全に異なるアプローチの提案がありますか?

4

1 に答える 1

0

まあ、それはajax呼び出しを実行するだけで、実際にはPOSTでフォーム全体を送信するわけではないので、これらのボタンを送信ボタンにする必要はありません。ただ行う:

  <button id="btn_update" value="Update"></button>
  <button id="btn_clean"  value="Clean"></button>

そして、最終的なフォルダを次のように構成します。

evently/filterconf/_init
evently/filterconf/_init/selectors
evently/filterconf/_init/selectors/#btn_clean/
evently/filterconf/_init/selectors/#btn_clean/click.js
evently/filterconf/_init/selectors/#btn_update
evently/filterconf/_init/selectors/#btn_update/click.js

または、あなたのアプローチでは、次のようになります。

evently / filterconf / _init / selectors / form / submit.js

したがって、イベントをクリックするのではなく、送信イベントを添付します。

送信ハンドラは次のようになります。

  function() {
      var form = $(this);
      var doc = form.serializeObject();
      // ...
  }
于 2011-10-31T15:47:33.410 に答える