Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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
Javascript jQuery使用select for ajax请求查找所有输入类型_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jQuery使用select for ajax请求查找所有输入类型

Javascript jQuery使用select for ajax请求查找所有输入类型,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图执行一个ajax请求,在找到输入并选择要更新的元素后,使用jquery each循环设置FormData,如下所示: $(document).on("click", ".update", function (e) { e.preventDefault(); e.stopPropagation(); let thisBtn = $(this); //Form Data let formData = new FormData(); let th

我试图执行一个ajax请求,在找到输入并选择要更新的元素后,使用jquery each循环设置FormData,如下所示:

$(document).on("click", ".update", function (e) {
    e.preventDefault();
    e.stopPropagation();

    let thisBtn = $(this);
    //Form Data
    let formData = new FormData();
    let thisRow = thisBtn.closest("tr");
    thisRow.find("input,select").each(function() {
        //console.log(this.value)
        formData.append($(this).attr('name'), $(this).val());
    });

    $.ajax({
        type: "POST",
        url: '<?php echo base_url()?>exam/update',
        data: formData,
        processData: false,
        contentType: false,
        success:function(data){
            if($.trim(data)=='yes')
            {
                alert('Success! Record updated successfully');
            }
            else
            {
                alert('Error! Record not updated successfully')
            }
        }
    });

});
$(文档)。在(“单击”,“更新”,函数(e){
e、 预防默认值();
e、 停止传播();
设thisBtn=$(this);
//表单数据
设formData=new formData();
设thisRow=thisBtn.最近(“tr”);
thisRow.find(“输入,选择”).each(函数(){
//console.log(this.value)
append($(this.attr('name'),$(this.val());
});
$.ajax({
类型:“POST”,
url:“检查/更新”,
数据:formData,
processData:false,
contentType:false,
成功:功能(数据){
如果($.trim(数据)=“是”)
{
警报(“成功!记录更新成功”);
}
其他的
{
警报('错误!记录未成功更新')
}
}
});
});
但是得到一些未定义的参数,如下所示:

$(document).on("click", ".update", function (e) {
    e.preventDefault();
    e.stopPropagation();

    let thisBtn = $(this);
    //Form Data
    let formData = new FormData();
    let thisRow = thisBtn.closest("tr");
    thisRow.find("input,select").each(function() {
        //console.log(this.value)
        formData.append($(this).attr('name'), $(this).val());
    });

    $.ajax({
        type: "POST",
        url: '<?php echo base_url()?>exam/update',
        data: formData,
        processData: false,
        contentType: false,
        success:function(data){
            if($.trim(data)=='yes')
            {
                alert('Success! Record updated successfully');
            }
            else
            {
                alert('Error! Record not updated successfully')
            }
        }
    });

});


但是我想要纯参数,除了未定义的

这段代码似乎在查找输入/选择未定义的名称属性,如何解释在formData中获得未定义值的事实

 thisRow.find("input,select").each(function() {
    //alert(this.value)
    formData.append($(this).attr('name'), $(this).val());
});
thisRow.find("input,select").each(function() {
    //alert(this.value)
    if($(this).attr('name'))
    {
        formData.append($(this).attr('name'), $(this).val());
    }
});
我建议您在添加到formData之前检查名称是否未定义

 thisRow.find("input,select").each(function() {
    //alert(this.value)
    formData.append($(this).attr('name'), $(this).val());
});
thisRow.find("input,select").each(function() {
    //alert(this.value)
    if($(this).attr('name'))
    {
        formData.append($(this).attr('name'), $(this).val());
    }
});

这段代码似乎是在查找输入/选择未定义的name属性,如何解释在formData中获得未定义值的事实

 thisRow.find("input,select").each(function() {
    //alert(this.value)
    formData.append($(this).attr('name'), $(this).val());
});
thisRow.find("input,select").each(function() {
    //alert(this.value)
    if($(this).attr('name'))
    {
        formData.append($(this).attr('name'), $(this).val());
    }
});
我建议您在添加到formData之前检查名称是否未定义

 thisRow.find("input,select").each(function() {
    //alert(this.value)
    formData.append($(this).attr('name'), $(this).val());
});
thisRow.find("input,select").each(function() {
    //alert(this.value)
    if($(this).attr('name'))
    {
        formData.append($(this).attr('name'), $(this).val());
    }
});

在没有看到HTML的情况下,我们无法确切地告诉您原因,但从输出中可以清楚地看到,表单中有一些
输入
和/或
选择
元素没有
名称
。它们可能是隐藏的,因此请检查DOM检查器以查找并删除它们

如果不想修改HTML,则可以使用属性选择器仅查找
输入
选择具有
名称
的元素,如下所示:

let $thisBtn = $(this);
let formData = new FormData();
let $thisRow = $thisBtn.closest("tr");
$thisRow.find("input[name], select[name]").each(function() {
  formData.append(this.name, $(this).val());
});

在没有看到HTML的情况下,我们无法确切地告诉您原因,但从输出中可以清楚地看到,表单中有一些
输入
和/或
选择
元素没有
名称
。它们可能是隐藏的,因此请检查DOM检查器以查找并删除它们

如果不想修改HTML,则可以使用属性选择器仅查找
输入
选择具有
名称
的元素,如下所示:

let $thisBtn = $(this);
let formData = new FormData();
let $thisRow = $thisBtn.closest("tr");
$thisRow.find("input[name], select[name]").each(function() {
  formData.append(this.name, $(this).val());
});