0

この質問は同じ状況に対処しているように思われるとすぐに言いますが、私の一生の間、解決策/答えがそこにあるのかわかりません。おそらく誰かが私のためにもっとはっきりと「それを綴る」必要があります!

私は次の機能を持っています:

function CheckIfUrlExists(checkUrl) {
    var exists = '';
    $.ajax({
        type: 'POST',
        url: '../scripts/branchAdmin.php',
        data: {checkUrl: checkUrl},
        cache: false,
        success: function(response) {
            console.log('response: ' + response);
            if (response === 'true') {
                exists = 'true';
            } else if (response === 'false') {
                exists = 'false';
            }
        },
        error: function(response) {
            // return false and display error(s) from server
            exists = 'false';
        }
    });

    console.log('exists: ' + exists); // always displays empty string, regardless of what the php script returns

    return exists;
}

そして、私はこれでそれを呼んでいます:

var exists = CheckIfUrlExists($tr.find('input.editUrl').val());

if (exists === 'false') {
    //if (!CheckIfUrlExists($tr.find('input.editUrl').val())) {
    // New URL entered, verify user want to save it
    $('#confirmAddNewUrlDialog').data('row', $tr).dialog('open');
    ... // code to handle result
}

上記のコードで使用できるように、「CheckIfUrlExist()関数でtrueまたはfalse(またはそれに関する任意の値)を返すようにするにはどうすればよいですか?

4

1 に答える 1

0

ajax call async オプションを false にします。その後、結果が得られます。リンクを参照してくださいhttps://stackoverflow.com/a/1531710/399414

$.ajax({
        type: 'POST',
        async: false,
        url: '../scripts/branchAdmin.php',
...
于 2013-02-14T19:44:51.163 に答える