【问题标题】:Get id from serializeArray从 serializeArray 中获取 id
【发布时间】:2011-01-27 09:37:11
【问题描述】:

我有以下表格

 <form action="test.php" id="loginform" name="loginform" method="post">
     <input name="title[]" id="title1" type="text" value="" tabindex="1" />
     <input name="title[]" id="title2" type="text" value="" tabindex="2" />
     <input  name="title[]" id="title3" type="text" value="" tabindex="3" />
     <input type="submit" name="submit" value="Submit" id="submit" tabindex="4" />
 </form>

我可以使用此代码获取元素名称,但不能获取其 ID。

$('#loginform').bind('submit', function() { 
    var elements = $(this).serializeArray();
    $.each(elements, function(i, element) {
        var temp = $('#' + element['name']);
        var name = this.name; alert(name);
        var id = this.id; alert(id); ///even id = this.attr("id"); not getting

        var value = this.value; 
        (temp.val() == '') ? temp.css({'background': '#FFC4C4', 'border': '1px solid #F00'}) : temp.removeClass('hightlight');
    });
    return false;
});

Demo

【问题讨论】:

    标签: jquery serializearray


    【解决方案1】:

    为你更新这个答案:

    这段代码:

    var id = $(this).id;alert(id);
    

    应该变成这样:

    var id = $('input[name="' + name + '"]').attr("id");
    alert(id);
    

    查看这里的代码:http://jsfiddle.net/Ct8zf/5/

    请注意,根据.serializeArray() 文档,唯一被序列化的元素是名称和值。

    希望这会有所帮助。

    【讨论】:

    • 尝试了所有可能性,但它说 undefined var id = this.id;alert(id);,var id = this.attr("id");alert(id);
    • 感谢 Mitch 付出的努力和时间,但是 var id = $(this).attr("id");也不行。
    • 也许尝试创建一个带有警报的 jsFiddle,我很乐意看看! :-)
    • 好的,所以这是一个超级hacky的方法......我会考虑你为什么实际上要序列化数组以及你如何实现它...... :-) alert($ ('input[name="' + name + '"]').attr("id")); jsFiddle:jsfiddle.net/Ct8zf/5
    猜你喜欢
    • 1970-01-01
    • 2011-01-15
    • 2012-08-22
    • 1970-01-01
    • 2016-04-14
    • 2020-02-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多