ajax返回数据给select标签添加问题

通过ajax从数据库把数据返回到页面,并添加到select标签中,然后通过选择器选出option值为指定的值被默认选中图片说明

5个回答

ajax默认使用异步请求
alert会卡js,点击确认后才会执行下一行js
在这里,你的请求发出后,数据还没发回来,然后如果没有alert的话就立即执行了你的切换选中的操作,
因为下拉框里没有任何内容,所以你的操作是无效的。
加了alert在你没点确定之前,切换选中的操作都还不会执行,就停这么一下,ajax已经异步返回结果了,select里已经拼接了内容,
然后alert确定了就继续执行了后面的操作,select里有内容了自然就操作成功了

在这里你一个是在成功的回调函数里,each拼接完select后,在each外面直接$("#cust_source").val(model.cust_source.dict_id);即可

你的ajax异步请求

没等创建select 就执行了选中功能

把选中功能放到ajax回调函数中

qq_36118179
KiminaPera $(function(){...})函数当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,执行。(这是百度的)------说明<select>已经创建好了,----------通过你们的提醒,我的理解是去请求发出之后,浏览器接着向下执行,把我红框里的执行完了(在没有alert情况下)然后数据才返回回来,再去调用回调函数
10 个月之前 回复

ajax是异步操作,你的选中操作并没有放到ajax的回调里面,当你加上alert的时候会在这里等待你的操作完成后再执行下一句语句,ajax也请求完成了,所以有效果。

qq_35445306
Now大牛 回复KiminaPera: 是的
10 个月之前 回复
qq_36118179
KiminaPera 谢谢了,是不是Ajax是异步的,发出请求之后,浏览器接着执行后面的(红框里面的语句)请求响应后才调用回调函数,这是红框里的已经执行过了
10 个月之前 回复

你在$.each这个循环里面判断也行呀,满足条件就append一个< option selected = "selected" ></ option >

把你圈起来的那一句插入到第四行下面就可以了,这样就放到了回调函数里。你贴图的写法是写到了外面,此时节点还未生成,你对一个未生成的节点进行属性设置,当然是行不通的。望采纳,需分下载资源。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!