Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery submit.ajax调用是否需要包装在$(函数(){})中_Jquery_Form Submit - Fatal编程技术网

Jquery submit.ajax调用是否需要包装在$(函数(){})中

Jquery submit.ajax调用是否需要包装在$(函数(){})中,jquery,form-submit,Jquery,Form Submit,我有一个ajax提交,无论我尝试了什么,它都不会运行。直到我发现一个教程将提交包装在$(函数(){})中呼叫。然后我将我的.submit包在一个函数调用中,它似乎已经起作用了。让我感到困惑的是,我还有其他的。提交ajax函数调用,这些调用在没有包装在函数中的情况下也能正常工作。我想知道我是否遗漏了一个我不理解的jQuery细微差别 为了更充分地说明我的意思,这里是我的函数在我将它包装成函数之前和之后 以前 $("#FormPutMsg1").submit(function (e) { d

我有一个ajax提交,无论我尝试了什么,它都不会运行。直到我发现一个教程将提交包装在
$(函数(){})中呼叫。然后我将我的.submit包在一个函数调用中,它似乎已经起作用了。让我感到困惑的是,我还有其他的。提交ajax函数调用,这些调用在没有包装在函数中的情况下也能正常工作。我想知道我是否遗漏了一个我不理解的jQuery细微差别

为了更充分地说明我的意思,这里是我的函数在我将它包装成函数之前和之后

以前

$("#FormPutMsg1").submit(function (e) {
    debugger;
    e.preventDefault();
    //animateSpinner();
    var theURL = this.action;
    var type = "POST";//this.methd;
    var data = $(this).serialize();
    $.ajax({
        url: this.action,
        type: this.method,
        data: $(this).serialize(),
        dataType: "json",
        success: function (result) {
            debugger;
            var data = result;
            if (data.split(':')[0] == "Error") {
                //$("#list").unblock();
                $('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
                setTimeout(function () {
                    $('#resultDiv').html("");
                }, 10000);
            }
            else {
                binddata(data);
            }
        }
    });
    return false;
});
$(“#FormPutMsg1”)。提交(函数(e){
调试器;
e、 预防默认值();
//animateSpinner();
var theURL=this.action;
var type=“POST”//this.methd;
var data=$(this.serialize();
$.ajax({
url:this.action,
类型:this.method,
数据:$(this).serialize(),
数据类型:“json”,
成功:功能(结果){
调试器;
var数据=结果;
if(data.split(“:”)[0]=“Error”){
//$(“#列表”).unblock();
$('resultDiv').html('p style=“color:'ff00ff”>'+data+'

'); setTimeout(函数(){ $('#resultDiv').html(“”); }, 10000); } 否则{ 绑定数据(数据); } } }); 返回false; });
之后(这一个有效)

$(函数(){
$(“#FormPutMsg1”).submit(函数(e){
调试器;
e、 预防默认值();
//animateSpinner();
var theURL=this.action;
var type=“POST”//this.methd;
var data=$(this.serialize();
$.ajax({
url:this.action,
类型:this.method,
数据:$(this).serialize(),
数据类型:“json”,
成功:功能(结果){
调试器;
var数据=结果;
if(data.split(“:”)[0]=“Error”){
//$(“#列表”).unblock();
$('resultDiv').html('p style=“color:'ff00ff”>'+data+'

'); setTimeout(函数(){ $('#resultDiv').html(“”); }, 10000); } 否则{ 绑定数据(数据); } } }); 返回false; }); });

在我将我的函数包装到函数中之前,常规提交功能是预先启用的(因为我想e.preventDefault从未被调用)。我是否遗漏了一些东西,先生们(女士们)?

原始代码块将永远不会执行,因为“#FormPutMsg1”还不存在。第二个代码块在页面加载后执行,因此“#FormPutMsg1”将存在

$(“#FormPutMsg1”).submit()需要执行触发器。用“$(function(){})”包装它将在页面加载时执行块。您还可以使用“单击”事件触发它

“$(function(){})”是“$(document.ready(function(){})”的快捷方式。

基于我的专业知识(这并不太棒),我认为“$(function(){})”与document.ready是一样的

唉,这个函数中的脚本将在DOM完全加载时执行

在第一种情况下,脚本试图在加载元素之前执行,因此无法工作


在第二种情况下,脚本将等待DOM中的所有元素加载完毕后再执行。

我不想在这里引起争议,但我有这样做的代码。它没有包装在documenet.ready或任何类型的函数调用中。但代码仍然可以执行。我肯定也缺少一些东西。“after”代码被包装在“$(function(){}”中。我不明白你为什么说不是。“$(function(){})”将在页面加载后执行代码。我的意思是说,我在其他地方有其他代码没有包装在其中,或者确实可以工作。
$(function () {
    $("#FormPutMsg1").submit(function (e) {
        debugger;
        e.preventDefault();
        //animateSpinner();
        var theURL = this.action;
        var type = "POST";//this.methd;
        var data = $(this).serialize();
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            dataType: "json",
            success: function (result) {
                debugger;
                var data = result;
                if (data.split(':')[0] == "Error") {
                    //$("#list").unblock();
                    $('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
                    setTimeout(function () {
                        $('#resultDiv').html("");
                    }, 10000);
                }
                else {
                    binddata(data);
                }
            }
        });
        return false;
    });
});