使用jQuery从select中获取数据属性

时间:2014-01-30 03:37:41

标签: jquery

提前感谢您的帮助。这个是踢我的屁股。我在这里找到了几个类似的问题,尝试了他们的建议,但它仍然没有用。

我要做的是从select标签获取数据属性,以及所选选项的值,并通过AJAX请求传递这些属性。

控制台显示“groupid undefined”,并且不会传递groupId和menuId变量。

我知道我应该放弃顽固,只需将data-groupid和menuid放在“选项”中,然后使用$(this).find(':selected')。data('menuid')route。 ..

HTML:

<select id="menuArray" class="menuPermission" data-groupid="2" data-menuid="9">
 <option>-</option>
 <option value="R">R</option>
 <option value="W">W</option>
</select>

JS:

$(".menuPermission").change(function(){
    //console.log("groupid"+$(this).data('groupid'))
    $.ajax({
        type: "POST",
        url: "popup.php",
        data: {
            action:"updateAdminAccess", 
            groupId:$(this).data("groupid"), 
            access:$(this).val(), 
            menuId:$(this).data("menuid")}
    });
})

2 个答案:

答案 0 :(得分:0)

您在$(this)对象中呼叫$.ajax(),因此返回$.ajax()

试试这个(没有双关语):

$(".menuPermission").change(function(){
    var obj = this;
    //console.log("groupid"+$(this).data('groupid'))
    $.ajax({
        type: "POST",
        url: "popup.php",
        data: {
            action:"updateAdminAccess", 
            groupId:$(obj).data("groupid"), 
            access:$(obj).val(), 
            menuId:$(obj).data("menuid")}
    });
})

答案 1 :(得分:0)

.attr('attribute-name')

获取某些属性值

$(".menuPermission").change(function(){
        var groupId = $(this).attr('data-groupid');
        var menuId  = $(this).attr('data-menuid');
        var optionVal   = $(this).val();
        $.ajax({
            type: "POST",
            url: "popup.php",
            data: {
                action:"updateAdminAccess", 
                groupId:groupId, 
                access:optionVal, 
                menuId:menuId}
        });
    })