0

私はいくつかのクレイジーな問題を抱えています、そして私はそれを修正する方法を理解することができません。送信ボタン(クリック)に「returnsubmitNotes」があるフォームがあります。私はsubmitNotes関数を持っていて、それをうまく呼び出しているようですが、私の関数では、起動していないように見えるajax呼び出しがあります。終了したときのajax呼び出しにアラートを配置しましたが、不思議なことに、ページの下部でfalseが返された場合にのみアラートがオフになります。返品をコメントアウトすると、アラートも表示されません。どちらの場合も、ajax呼び出しはそのページに到達していないようです。あなたたちが助けるためにできることは何でも!

function submitNotes(rID){

    ts = getTs(); //this is so IE sees a unique URL being called everytime.
    var consignor = $('#consignor').val()
    var consignee = $('#consignee').val();
    var consignorRequired = $('#consignorRequired').val();

    if(consignorRequired=='true'){

            if(consignor==''){
                alert('Consignor information is required!');
                return false;
            }

            if(consignee==''){
                alert('Consignee information is required!');
                return false;
            }
    }

    $('#loading_notes').show();

    $.get('/scripts/claim_sendTo.asp?action=pending&rID='+rID+'&auditorID=1',function(){
        alert('hello2');
        $('#claimForm').submit();
    });

    //return false;

}
4

2 に答える 2

0

試してみたいのは、イベントのデフォルトの動作を防ぐことです。

フォームの送信をコアで停止できるため、onclick=""の代わりにonsubmit=""をフォームで使用することをお勧めします。

次に、イベントオブジェクトを送信関数に渡します。これにより、戻り値にあまり依存することなく、イベントをより細かく制御できます。

<form method="post" action="X" onsubmit="submitNotes(event)">

// Somewhere in your JavaScript
function submitNotes(event) {
    if (event.preventDefault) event.preventDefault();
    else window.event.cancelBubble = true;
    // the rest of the event code
}

それは良いスタートになるはずです。

onclickイベントの使用を継続したい場合は、次のことを試してみてください。

<form method="post" action="X" onsubmit="if (event.stopPropagation) event.stopPropagation(); else window.event.cancelBubble = true">

これにより、フォームが送信を処理できなくなります。

jQueryの$('form').submit( ... )イベント処理を使用することをお勧めしますか?

于 2013-01-23T22:31:11.063 に答える
0

return falseonsubmitイベントのコンテキストにいるため、コメントを解除するとアラートがオフになります。そのイベントから戻るfalseと、イベントがキャンセルされ、jqueryを実行できるようになります。それ以外の場合、フォームはページを再読み込みします

于 2013-01-23T22:31:38.153 に答える