Jquery - 获取父元素的data-id

时间:2014-11-24 00:38:14

标签: javascript jquery twitter-bootstrap-3 submit

一直在查看之前提出的问题,但找不到太多帮助。

我有以下html代码通过data-id发送到以下模式,当用户提交我创建的表单('#edit-form')。submit函数需要通过前面提到的发送数据-ID。

这是我的代码

按钮打开模态>>

<button type="button" class="edit-group" title="Edit Group" data-id="<?php echo $group->id ?>" data-name="<?php echo $group->groupName ?>">Edit Group</button>

形式内部模式:

<form class="form-horizontal" id="edit-template-form">
    <div class="modal-body">
        <div class="form-group">
            <label for="edit-group-name" class="col-sm-2 control-label">Group name</label>
        <div class="col-sm-10">
            <input type="text" name="groupName" class="form-control" id="edit-template-name" placeholder="New Group Name">
        </div>
    </div>
    <input type="hidden" id="edit-template-id">
    </div>
    <div class="modal-footer">
        <button type="button" class="md-close" data-dismiss="modal">Cancel</button>
        <button type="submit" class="btn btn-primary btn-flat">Save Changes</button>
    </div>
</form>

Jquery的

$('#edit-template-form').submit(function (e) {
    e.preventDefault();
    var data = {
        id: $(this).parent().val($(this).data('id')),
        name: $('#edit-template-name').val()
    };
    console.log(data);
    return false;
});

1 个答案:

答案 0 :(得分:1)

this关键字指的是数据对象本身而不是#edit-template-form。因此,在使用之前存储变量this,如下所示:

$('#edit-template-form').submit(function (e) {
    e.preventDefault();
    var form = $(this);
    var data = {
        id: form.parent().val(form.data('id')),
        name: $('#edit-template-name').val()
    };
    console.log(data);
    return false;
});