提前感谢您的帮助。这个是踢我的屁股。我在这里找到了几个类似的问题,尝试了他们的建议,但它仍然没有用。
我要做的是从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")}
});
})
答案 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}
});
})