3

3-4 入力フィールドと送信ボタンを備えた単純なフォームがあります。

実装する機能: 送信ボタンをクリックすると、送信ボタンが無効になり、他のボタンをクリックできないようにする必要があります。ボタンを隠すことができません。

jquery/javascriptを使用して送信ボタンを無効にしているため、リクエストも無効になり、フォームがCHROME/IE8に投稿されませんでした。

解決策はありますか?

編集:

コード:

$('#submit').attr('disabled', true); OR $('#submit').prop('disabled', true);// for IE

私も試し$('#submit').attr('disabled', 'disabled');ましたが、同じ結果です。

4

2 に答える 2

3

あなたはボタンを隠すことができないと言っていますが、それはあなたが必要とする答えです.

この問題が発生したとき、ボタンを非表示にして、同じサイズの小さな「読み込み」スピナー グラフィックに置き換えました。

これは、何が起こったのかについてユーザーに分かりやすいフィードバックを提供するという問題と、無効化されたボタンの問題を解決するという問題に対処しています。

ボタンをそのままにして無効にする必要がある場合は、同じ手法を使用して実際のボタンを非表示にし、同じように見えるが無効になっている別のボタンをその場所に表示できます。

ちなみに、この問題が発生したとき、フォームがまったく投稿できなかったわけではありません。ブラウザが投稿したフィールドに無効化されたボタンが含まれていなかっただけです。バックエンド スクリプトがボタンがポストされた値の 1 つに依存している場合、これは明らかに問題です。これがあなたに起こっている方法である場合、他の解決策は隠しフィールドを持ち、ボタンを無効にするときにボタンの値をそこにコピーすることです。これにより、無効なボタンが投稿されずにフォームが送信されますが、必要な値は代わりに隠しフィールドにあります。

それが役立つことを願っています。

于 2012-08-18T10:49:03.133 に答える
0

クリック イベントで - フォームを送信します。

$(document).ready(function(){
    $('#submit-button-id').click(function(e) {
        //stop normal submit
        e.preventDefault();

        //disable button
        $(this).attr('disabled','disabled');

        //submit form
        $('#form-id').submit();
    });
});

これも同様に機能します。

$(document).ready(function(){
    $('#form-id').submit(function(e) {
        e.preventDefault();
        somefunction();
    });
});

function somefunction() {
    $('#form-id').unbind('submit');
    $('#submit-button-id').attr('disabled','disabled');
    $('#form-id').submit();
}
于 2012-08-18T11:08:53.410 に答える