2014-02-07 67 views
0

我有一個表格, 我的JS代碼是低於HTML表單。如何防止提交按鈕,如果成功的數據

如果URL不存在,如果想顯示警報(如文件存在),並且 阻止驗證提交(如此刷新頁面)。

我可以使用返回true或false嗎?如果是這種情況,我可以放他們嗎?

echo '<form id="gestion_form" method="post" action="#" enctype="multipart/form-data">'; 
.... 
echo '<button class="btn btn-green" style="margin-left: 10px; margin-bottom: 15px;" type="submit" name="Envoyer" id="envoyer">MODIFIER !</button>'; 
echo '</form>'; 

<script type="text/javascript"> 
$(function() { 
$("#envoyer").click(function() { 
$("#loader").show(); 
var file = $("#vignette").val(); 
var address = window.location.protocol + '//' + window.location.hostname; 
$.ajax({ 
    url: address + "/admin/img/" + file, 
    success: function(data){ 
    alert("the file exist"); 
    // Return false here or true ? 
    }, 
    error: function(data){ 
    // Return false here or true ? 
    } 
}); 

}); 
}); 
</script> 

回答

1

$ .ajax默認爲異步請求。設置async:false並且函數不會返回,直到調用完成。有關更多詳細信息,請參見http://api.jquery.com/jquery.ajax/

<script type="text/javascript"> 
$(function() { 
    $("#envoyer").click(function() { 
     $("#loader").show(); 
     var file = $("#vignette").val(); 
     var address = window.location.protocol + '//' + window.location.hostname; 
     $.ajax({ 
       url: address + "/admin/img/" + file, 
       async: false, 
       success: function(data){ 
        alert("the file exist"); 
        return true; 
       }, 
       error: function(data){ 
        alert("something went wrong"); 
        return false; 
       } 
     }); 

    }); 
}); 
</script> 
+0

這是我所做的感謝。見下文 。 – user3162341

0

你可以先做另一個AJAX,在提交前,只是爲了看看是否有響應。這裏是一些PHP網頁摘要

function is_host($sCheckHost = 'www.google.com'){ //replace google with your domain 
    return (bool) @fsockopen($sCheckHost, 80, $iErrno, $sErrStr, 5); 
} 

function is_file($file){ //crossdomain file 
    $file_headers = @get_headers($file); 
    if(strpos($file_headers[0], '404') || (strpos($file_headers[0], '302') && strpos($file_headers[7], '404'))) return false; 
    else return true; 
} 

,這回新的AJAX功能,這可能做的伎倆,好運氣。

+0

哦,似乎我誤解了你的問題。如果地址不存在,那麼ajax世界仍然會返回錯誤,現在的問題是什麼?我的意思是,它不能返回真或假,它只是返回錯誤:-) – ddlab

0

我解決了它。

我只是想添加返回false或true,但我不知道在哪裏。 這是我的代碼,它的工作原理,我可以檢查地址是否存在,如果是這種情況,我把警報和用戶留在頁面中沒有任何重新加載。

$(function() { 

$("form[name=otsconfig]").submit(function() { 
$("#loader").show(); 
var ret = false; 
var file = $("#vignette").val(); 
var address = window.location.protocol + '//' + window.location.hostname; 
$.ajax({ 
    url: address + "/admin/img/" + file, 
    success: function(data){ 
    alert("Image existante (erreur avec le nom du fichier)..."); 
    ret = true; 
    }, 
    error: function(data){ 
    ret = false; 
    } 
}); 
return ret; 
}); 
}); 
相關問題