2014-11-24 130 views
1

一直在查看先前提問的問題,但找不到太多幫助。Jquery - 獲取父元素的數據ID

我有以下html代碼,通過數據id發送到下面的模式,當用戶提交表單時,我已經創建了一個('#edit-form')。提交函數,需要通過先前發送提到的數據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; 
}); 
+0

如果您想要提交表單控件,它們必須有一個名稱。一個ID是可選的(通常不需要)。 – RobG 2014-11-24 00:42:59

回答

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; 
}); 
+0

更多的語義使用'var form = this'。 「自我」有點無意義。 – RobG 2014-11-24 00:47:12