我可以得到输入val(),但不是名字

时间:2014-01-07 17:31:42

标签: jquery input

$(".form").submit(function(e){
        e.preventDefault();
        $.ajax({
            url: "file.php",
            type: "POST",
            data: {
                input_value: $(".form").find("input:not(:first-child)").filter(function(){
                    return this.value.length !== 0;
                }).val(),

                input_name: $(".form").find("input:not(:first-child)").filter(function(){
                    return this.value.length !== 0;
                }).name,
            },
            success: function(data) {

            },
        });
    });
好的,所以我提交了一个包含多个输入的表单,但只提供了一个非空白的表单。

因此,在内部数据中,我的'input_value'变量工作正常,它找到唯一带有值的输入并存储该值。

我尝试使用相同的想法来获取输入的'name'属性(在input_name变量中),但是我的php文件给了我一个'Undefined index'错误...

我不明白为什么它适用于输入的值,而不是它的名字......

顺便说一下,输入是动态生成的(不确定它是否与它有关......)

非常感谢!!

2 个答案:

答案 0 :(得分:4)

变化:

.name,

为:

.attr('name'),.prop('name'),

哪一个取决于您正在使用的jQuery版本。请参阅.attr().prop()

答案 1 :(得分:2)

jQuery对象上没有直接的.name属性,你必须使用prop()

$(".form").find("input:not(:first-child)").filter(function(){
          return this.value.length;
}).prop('name'),