0

show_msgフォームがあり、ユーザーが送信ボタンを押している間にパラメーター (ブール値パラメーター)を更新したいと考えています。ユーザーがチェックボックスをオンにして送信を押した場合、TRUE に設定したいと思います。それ以外の場合: FALSE。

だから私はポップアップウィンドウを持つメインhtmlを持っています。このポップアップウィンドウで、フォームを書きました。( 「アクション」には何を書く必要がありますか?このポップアップ ウィンドウを閉じるだけです):

<form name="input" action="#" method="post">
   <input type="checkbox" id="mycheckbox">Don't show me again<br>
   <input type="submit" id="Submit">
</form> 

これは私のJavaScriptです:

$("#submit").click(function() {
   $.ajax({
     ## the url is the controller
     url: '/welcome',
     type: 'PUT',
     data: {show_msg: $("#mycheckbox").is(":checked")}
   });
});

これが私のコントローラーです:

class WelcomeController < ApplicationController

def update
    @user = User.find(params[:id])

    respond_to do |format|
        if @user.update_attributes(params[:show_msg])
            format.html { redirect_to @user, notice: 'You will never see this message again.' }
            format.json { head :no_content }
        end
    end
end

どんな助けでも大歓迎です!

4

2 に答える 2

2

Railsform_forタグを使用してフォームを作成します。

次に、送信ボタンのクリックでイベントをトリガーする代わりに、フォームの送信でトリガーします。

最後に$.ajax call、属性の you でurl、フォーム アクション属性から適切な URL を取得します。

ちなみにformタグでremote: trueオプションを追加できます。そしてajax:successajax:errorなどにイベントをバインドします。

于 2013-02-05T09:22:22.520 に答える
1

JavaScript が失敗した場合に送信されたデータを処理するサーバー側プロセスの URL にアクションを設定します。

プログレッシブ エンハンスメント控えめな JavaScriptも参照してください。

于 2013-02-05T09:22:06.360 に答える