0

私はmvc3Ajax.BeginFormを持っています。ボタンをクリックする代わりに、テキストボックスの1つからのonblurイベントからJavaScriptによってボタンをクリックさせたいと思います。

以下のコードを試し、$('#submitEmail')。click();を使用して関数を呼び出しました。初期化。送信は機能し、投稿が返されますが、問題はController Request.IsAjaxRequest()にあります。自分でボタンをクリックすると、Request.IsAjaxRequest()がtrueになります。

@Html.TextBoxFor(model => model.LeadEmail, new { onBlur = "this.form.submit();" })

はい、フィドラーで確認しましたX-Requested-JavaScriptトリガーを使用している場合、Withは存在しません。onBlurイベントでフォームを送信し、適切なajaxヘッダーを取得するにはどうすればよいですか?

4

3 に答える 3

1

だから、なぜ私が試していた方法がうまくいかないのかわかりません。私の見方はうまくいくはずです。ボタンを押すか、ボタンを押すコードは同じである必要があります。どうやら違いがあります。たぶん、この分野の知識を持っている人が私たちに知らせることができます。しかし、解決策は実際にajax投稿を行うことです。

<script type="text/javascript">
function FormAjaxSubmit() {
    var someThing = $("#SomeThing").val();
    $.ajax({
        url: "/Control/Action",
        type: "POST",
        data: { SomeThing: someThing },
        success: function (result) {
            $('#resultDiv').html(result);
        }
    });
}
</script>
于 2012-06-08T01:13:47.783 に答える
1

Tigranの答えに何かを追加したいと思います:

<script type="text/javascript">
    function FormAjaxSubmit() {
        var f = $("form").serialize();
        $.ajax({
            url: "/Control/Action",
            type: "POST",
            data: { formCollection: f },
            success: function (result) {
                $('#resultDiv').html(result);
            }
        });
    }
</script>
于 2012-06-08T08:47:33.910 に答える
0

フォームで送信メソッドを呼び出すことは、基本的にフォームの送信ボタンをクリックすることと同じであり、それを行うと、ブラウザはメソッド属性で定義されたメソッドタイプ(GET / POST)に基づいてリクエストを実行します。

送信の呼び出しはajaxリクエストではなく、ページ全体のリロードを行うフォーム送信であるため、機能しませんでした。

于 2012-06-08T07:43:22.490 に答える