0

送信時に呼び出されるフォーム検証メソッドがあります。「get」を実行してフィールドの 1 つを検証し、フィールドが無効な場合は false を返します。

$.get('validate.cfc', 
    {
        method: 'validateUserID',
        userID: $('#userID').val(),
        returnformat: 'plain'
    },
    function(data){
        if($.trim(data) == 0){
            alert('Invalid userID!');
            return false;
        }
    }
);

次に、さらにいくつかの簡単な検証手順を実行します (ajax 呼び出しなし)。例えば:

if(!isDate($('#endDate').val()) && $('#endDate').val() != ""){
    alert("Please enter a valid end date");
    return false;
}

get問題は、実行中にコードが継続することです。したがって、ユーザー ID が無効で、終了日が日付でない場合は、最初に「有効な終了日を入力してください」というメッセージが表示され、次に「無効なユーザー ID です!」というメッセージが表示されます。メッセージ。get が完了するまでコードを待機させるにはどうすればよいですか?

(私が考えることができる唯一のことは、 get の後の関数内の残りのすべてのコードの周りに小さな setTimeOut を配置することです...最もエレガントなソリューションではありません。)

4

3 に答える 3

1

コードの 2 番目の部分を success 関数に入れます。

于 2012-06-20T10:39:53.060 に答える
1

うまくいけば、これでうまくいくはずです:

$.get('validate.cfc', 
{
    method: 'validateUserID',
    userID: $('#userID').val(),
    returnformat: 'plain'
},
function(data){
    if($.trim(data) == 0){
        alert('Invalid userID!');
        return false;
    }else{
            if(!isDate($('#endDate').val()) && $('#endDate').val() != ""){
            alert("Please enter a valid end date");
            return false;

            }else{
                   submit the form
                 }
         }
 }
);
于 2012-06-20T11:01:58.043 に答える
0

jquery ajax リクエストの一部として送信する async プロパティがあります。それを false に設定するだけです。

彼らは新しいバージョンでは廃止されたと言っていますが、私は以前にそれを使用し、機能しました. 新しい構文が何であるかわかりません。. . またはそうである場合

http://api.jquery.com/jQuery.ajax/を参照してください。

于 2012-06-20T14:39:29.670 に答える