为什么JavaScript onClick没有';是否触发jQuery提交函数?

为什么JavaScript onClick没有';是否触发jQuery提交函数?,javascript,jquery,html,Javascript,Jquery,Html,我提交的表格如下: <input id="submitBtn" style="margin-top:20px;" type="button" onclick="document.getElementById('form94').submit();" value="Opdater"> <input id="submitBtn" style="margin-top:20px;" type="button" onclick="myfunction()" value="Opdater

我提交的表格如下:

<input id="submitBtn" style="margin-top:20px;" type="button" onclick="document.getElementById('form94').submit();" value="Opdater">
<input id="submitBtn" style="margin-top:20px;" type="button" onclick="myfunction()" value="Opdater">

function myfunction() {
var form = $(this);
        $.ajax({ 
             url   : form.attr('action'),
             type  : form.attr('method'),
             data  : form.serialize(), // data to be submitted
             success: function(response){
                $("#showFancyBoxThankYouLink").click();
             }
        });
    return false;
}

用它生成一个函数并用onclick触发它,如下所示:

<input id="submitBtn" style="margin-top:20px;" type="button" onclick="document.getElementById('form94').submit();" value="Opdater">
<input id="submitBtn" style="margin-top:20px;" type="button" onclick="myfunction()" value="Opdater">

function myfunction() {
var form = $(this);
        $.ajax({ 
             url   : form.attr('action'),
             type  : form.attr('method'),
             data  : form.serialize(), // data to be submitted
             success: function(response){
                $("#showFancyBoxThankYouLink").click();
             }
        });
    return false;
}

函数myfunction(){
变量形式=$(此);
$.ajax({
url:form.attr('action'),
类型:form.attr('method'),
数据:form.serialize(),//要提交的数据
成功:功能(响应){
$(“#showFancyBoxThankYouLink”)。单击();
}
});
返回false;
}

表单呈现后javascript是否运行?如果没有,请确保您的javascript在表单之后,或者尝试在加载文档后运行它

$(document).ready(function() {
  $("#form94").submit(function() {
    var form = $(this);
        $.ajax({ 
             url   : form.attr('action'),
             type  : form.attr('method'),
             data  : form.serialize(), // data to be submitted
             success: function(response){
                $("#showFancyBoxThankYouLink").click();
             }
        });
    return false;
  });
});
让表单提交的另一种方法是向表单添加onsubmit属性,并让它返回一个函数。您还可以更改按钮类型,以提交并删除onclick属性

<form id="form94" name="form94" onsubmit="return SubmitMyForm();">
  <input type="submit" value="Opdater">
</form>

<script>
function SubmitMyForm() {
    var form = $(this);
    $.ajax({ 
         url   : form.attr('action'),
         type  : form.attr('method'),
         data  : form.serialize(), // data to be submitted
         success: function(response){
            $("#showFancyBoxThankYouLink").click();
         }
    });
    return false;
}
</script>

函数SubmitMyForm(){
变量形式=$(此);
$.ajax({
url:form.attr('action'),
类型:form.attr('method'),
数据:form.serialize(),//要提交的数据
成功:功能(响应){
$(“#showFancyBoxThankYouLink”)。单击();
}
});
返回false;
}

如果没有代码示例,很难判断。但是,有些浏览器只在用户单击提交按钮时提交表单,而不能通过脚本提交

围绕这个主题还有很多其他SO帖子,它们都可以归结为附加submit事件时不存在的表单(您的脚本是在文档顶部执行还是在文档的ready事件上执行?)

表单还不存在:

通过脚本提交:

不使用提交按钮:

更换此

onclick="document.getElementById('form94').submit();"
使用
onclick=“$(“#form94”).submit();”


IE中没有出现javascript submit(),它们可能是其他问题。

因为您使用不同的选择器

document.getElementById('form94'); //returns a HTML DOM Object
$('#form94');  //returns a jQuery Object  
您可以尝试下一个代码,它工作正常

<form id="form94">
    <input id="submitBtn" style="margin-top:20px;" type="button" onclick="$('#form94').submit();" value="Opdater">
</form>

<script type="text/javascript">
$("#form94").submit(function(e) {
    e.preventDefault();
   alert('test');
});

$(“#表格94”)。提交(功能(e){
e、 预防默认值();
警报(“测试”);
});

从html按钮中取出type=“button”和onclick属性。。并且add-up type=“submit”它存在是有原因的。。。由于一些样式问题。请在html中添加一个提琴。只需重新创建此内容所需的html:)哦,好的,您是否尝试使用单个事件,而不使用提交事件!!?