请问老师为什么我这里值显示一个区域

请问老师为什么我这里值显示一个区域

http://img1.sycdn.imooc.com//climg/5cfe530e0001b23b10460282.jpg

/**

 * 

 */

$(function(){

var initUrl='/o2o/shopadmin/getshopinitinfo';

var registerShopUrl='/o2o/shopadmin/registershop';

//这个是从url中获取到分类显示到页面上

getShopInitInfo()

function getShopInitInfo(){

$.getJSON(initUrl,function(data){

if(data.success){

var tempHtml='';

var tempAreaHtml='';

data.shopCategoryList.map(function(item, index){

tempHtml='<option data-id="'+item.shopCategoryId+'">'

+ item.shopCategoryName+'</option>';

});

data.areaList.map(function(item, index){

tempAreaHtml='<option date-id="' + item.areaId + '">'

+ item.areaName + '</option>';

});

$('#shop-category').html(tempHtml);

$('#area').html(tempAreaHtml);

}

});

//从url获得表单参数字符串保存到form对象中

$('#submit').click(function(){

var shop ={};

shop.shopName = $('#shop-name').val();

shop.shopAddr = $('#shop-addr').val();

shop.phone = $('#shop-phone').val();

shop.shopDesc = $('#shop-desc').val();

shop.shopCategory = {

shopCategoryId:$('#shop-category').find('option').not(function(){

return !this.selected;

}).data('id')

};

shop.area = {

areaId:$('#area').find('option').not(function(){

return !this.selected;

}).data('id')

};

var shopImg = $('#shop-img')[0].files[0];

var formData = new FormData();

formData.append('shopImg',shopImg);

formData.append('shopStr',JSON.stringify(shop));

var verifyCodeActual=$('#j_captcha').val();

if(!verifyCodeActual){

$.toast('请输入验证码')

return;

}

formData.append('verifyCodeActual',verifyCodeActual);

//利用阿贾克斯传到后台

$.ajax({

url : registerShopUrl,

type : 'POST',

data : formData,

contentType : false,//因为既有文字也有文件

processData : false,

cache : false,

    success : function(data){

    if(data.success){

    $.toast("提交成功!");

    }else{

    $.toast("提交失败!"+data.errMsg);

    }

    }

})

});

}

})


还有获取后台没获取到的areaId

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好。下面来一条条解答你的疑惑:

1、首先是只有一个option,是因为同学每次循环,都将html赋值为新的内容,自然最后显示的都是最后一个,应该使用“+=”而非“=”

http://img1.sycdn.imooc.com//climg/5cff0e68000198f807440552.jpg

2、后台没有获取到areaId是因为在option中没有名为id的属性,只有date-id属性。

http://img1.sycdn.imooc.com//climg/5cff12580001c63605710146.jpg

使用data获取id属性值,自然就获取不到了。

http://img1.sycdn.imooc.com//climg/5cff12b00001369005340190.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 慕盖茨8087740 提问者 #1
    老师这是巨毒啊,改data-id为空 写id的话分类有值区域没值 请看图
    2019-06-11 10:47:35
  • 慕盖茨8087740 提问者 #2
    我看懂了,请问老师为什么data获取id行呢,id名字不是data_id嘛
    2019-06-11 10:51:00
  • 慕盖茨8087740 提问者 #3
    这是js规范吗?
    2019-06-11 10:54:21
提问者 慕盖茨8087740 2019-06-11 10:46:33
  • 同学抱歉,是我说的有误,是我疏忽了。$().data('id')是获取option中的data-id属性没错,$().attr('id')才是获取id属性。这里没有获取到areaId可能另有原因,是否还是没有点击option?如果还是不行,请提供一下同学的var initUrl='/o2o/shopadmin/getshopinitinfo';对应的后台代码。我这边调试一下试试
    2019-06-11 11:32:22
提问者 慕盖茨8087740 2019-06-10 21:00:26

/**

 * 

 */

$(function(){

var initUrl='/o2o/shopadmin/getshopinitinfo';

var registerShopUrl='/o2o/shopadmin/registershop';

//这个是从url中获取到分类显示到页面上

getShopInitInfo()

function getShopInitInfo(){

$.getJSON(initUrl,function(data){

if(data.success){

var tempHtml='';

var tempAreaHtml='';

data.shopCategoryList.map(function(item, index){

tempHtml='<option data-id="'+item.shopCategoryId+'">'

+ item.shopCategoryName+'</option>';

});

data.areaList.map(function(item, index){

tempAreaHtml='<option date-id="' + item.areaId + '">'

+ item.areaName + '</option>';

});

$('#shop-category').html(tempHtml);

$('#area').html(tempAreaHtml);

}

});

}

//从url获得表单参数字符串保存到form对象中

$('#submit').click(function(){

var shop ={};

shop.shopName = $('#shop-name').val();

shop.shopAddr = $('#shop-addr').val();

shop.phone = $('#shop-phone').val();

shop.shopDesc = $('#shop-desc').val();

shop.shopCategory = {

shopCategoryId:$('#shop-category').find('option').not(function(){

return !this.selected;

}).data('id')

};

shop.area = {

areaId:$('#area').find('option').not(function(){

return !this.selected;

}).data('id')

};

var shopImg = $('#shop-img')[0].files[0];

var formData = new FormData();

formData.append('shopImg',shopImg);

formData.append('shopStr',JSON.stringify(shop));

var verifyCodeActual=$('#j_captcha').val();

if(!verifyCodeActual){

$.toast('请输入验证码')

return;

}

formData.append('verifyCodeActual',verifyCodeActual);

//利用阿贾克斯传到后台

$.ajax({

url : registerShopUrl,

type : 'POST',

data : formData,

contentType : false,//因为既有文字也有文件

processData : false,

cache : false,

    success : function(data){

    if(data.success){

    $.toast("提交成功!");

    }else{

    $.toast("提交失败!"+data.errMsg);

    }

    }

})

});

})


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师