0

ajaxスクリプトを介してすべてをコントローラーに自動的に送信するbeginformがあります。問題は、フォームにボタンが1つあり、クリックごとに1回だけ値を送信する必要があることです。残りの自動データと区別できないようです。

目標:ボタンを1回クリックしたら、値10(ボタンから)でコントローラーへの投稿を停止します。

AJAX関数(すべてのデータをコントローラーに送信します)

 function toconroller() {
    $.ajax({
        type: 'POST',
        url: this.action,
        data: $('form').serialize(),
        success: function (result) {
            $('#box').html(result.info);
            }
        });
    }

ボタン機能

 Function submitonce() { 
//I want to only submit value of button once.
 }

ボタンで開始

    @using (Html.BeginForm()) 
    { 
    <input id="data" onkeyup="tocontroller();">
   <input type="submit"  name="clicked" id="clicked" value="10" onclick="submitonce();" />
    }
4

1 に答える 1

1

valueクリックすると、送信ボタンの属性を削除できます。

function submitonce() { 
    $('#clicked').removeAttr('value');
}

または、属性を使用せずに目立たないようにしますが、 jQueryを使用してハンドラーonclickにサブスクライブします。.click()

$(function() {
    $('#clicked').click(function() {
        $(this).removeAttr('value');
    });
});

または、ボタンの属性を削除する代わりにvalue、ボタンを空などに設定することもできます。

$('#clicked').val('');

また、これは送信ボタンであるため、クリックハンドラーからfalseを返すことで、フォームを送信するデフォルトのアクションをキャンセルすることができます(私の2番目の目立たないjQueryの例)。

于 2012-06-25T20:10:03.463 に答える