3

StackOverflow で同様の例をいくつか見ましたが、これを機能させることができないようです。ある関数に行くonclickイベントがあり、それがOKを返した場合は別の関数に行き、それが問題ない場合はelseステートメントで次のように送信します。

document.forms["input"].submit();

これをコメントアウトして、showHide() という関数に送信してみました

function showHide() {
    $('#input').submit(function () {
        $('#main-content').hide();
        $('#progress').show();
    });
}

期待どおりにフォームを送信していないようです。私は基本的に、ブートストラップを使用してアニメーション化された進行状況バーを表示したいので、送信に時​​間がかかる場合があるため、ユーザーは何かが起こっていることを知ることができます。

アップデート:

ブートストラップ プログレス バーと jquery ui プログレス バーの両方でこれを機能させることができました。フォームを送信する直前に進行状況バーを実行します。ビューをロードするときに div を非表示にします。

        $(function() {

            $("#progress").show();
            });

        document.forms["input"].submit();
4

3 に答える 3

2

HTML を表示しないと、トラブルシューティングが少し難しくなります。しかし、関数を定義したようで、この関数内で要素がそれをトリガーすることを期待していますが、実際には機能しません。次のように、フォームの送信イベントから関数を呼び出すことができます。

//this assumes you have a form with id "input"
$('#input').submit(function () {
    showHide();
});
function showHide() {
    $('#main-content').hide();
    $('#progress').show();      
}

シンプルなJSFiddle デモ

于 2013-08-26T18:47:37.037 に答える
0

document.formsIDではなく、フォームの名前を含むオブジェクトです。

フォームに入力 ( ) の名前がない場合、<form name="input">...</form>バインド先の jQuery セレクターは機能しません。代わりに、 を使用する必要があります$('[name=input']).submit(...)

于 2013-08-26T18:46:38.973 に答える