Jquery 如果成功提交数据,如何防止“提交”按钮

Jquery 如果成功提交数据,如何防止“提交”按钮,jquery,Jquery,我有一张表格, 我的JS代码在HTML表单下面 如果url不存在,如果要显示警报(如文件存在),以及 阻止对提交的验证(因此刷新页面) 我可以使用return true或false?如果是这样的话,我应该把它们放在哪里 echo '<form id="gestion_form" method="post" action="#" enctype="multipart/form-data">'; .... echo '<button class="btn btn-green" s

我有一张表格, 我的JS代码在HTML表单下面

如果url不存在,如果要显示警报(如文件存在),以及 阻止对提交的验证(因此刷新页面)

我可以使用return 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>
echo';
....
回声“修饰语!”;
回声';
$(函数(){
$(“#特使”)。单击(函数(){
$(“#加载程序”).show();
var file=$(“#vignette”).val();
var address=window.location.protocol+'/'+window.location.hostname;
$.ajax({
url:地址+“/admin/img/”+文件,
成功:功能(数据){
警报(“文件存在”);
//这里返回false还是true?
},
错误:函数(数据){
//这里返回false还是true?
}
});
});
});

使用javascript无法真正验证url是否存在,使用服务器端代码也不太容易


如果您正在寻找验证URL格式的方法:

您可以在提交之前先执行另一个ajax,看看是否有响应。下面是一些php代码片段

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


并将其返回到新的ajax函数,这可以实现这一点,祝你好运。

$。默认情况下,ajax是一个异步请求。设置async:false,函数在调用完成之前不会返回。有关更多详细信息,请参阅

<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>

$(函数(){
$(“#特使”)。单击(函数(){
$(“#加载程序”).show();
var file=$(“#vignette”).val();
var address=window.location.protocol+'/'+window.location.hostname;
$.ajax({
url:地址+“/admin/img/”+文件,
async:false,
成功:功能(数据){
警报(“文件存在”);
返回true;
},
错误:函数(数据){
警惕(“出了差错”);
返回false;
}
});
});
});
我已经解决了

我只是想加上returnfalse或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;
});
});

哦,看来我误解了你的问题。如果地址不存在,ajax世界将返回一个错误,现在的问题是什么?我的意思是,它不能返回真或假,它只返回错误:-)
$(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;
});
});