JS驱动下拉列表出问题

yuri1231 2019-07-03 03:18:15
问题是这样的:
<script>
function $(id) { return document.getElementById(id); };
function settingsCallback(o) {
if ($('txtVer')) $('txtVer').value = o.ver;
if ($('txtMac')) $('txtMac').value = o.mac;
if ($('txtIp')) $('txtIp').value = o.ip;
if ($('txtSub')) $('txtSub').value = o.sub;
if ($('txtGw')) $('txtGw').value = o.gw;
if ($('txtProtecalType')) $('txtProtecalType').value = o.pt;
if ($('SProtecalType')) $('SProtecalType').value= JSON.parse(o.pt);
};
</script>


<select name=\"SProtecalType\" id="SProtecalType" size='1'>
<option value =\"0\">0:通用类型</option>
<option value =\"1\">1:902TCP</option>
<option value =\"2\">2:608UDP</option>
<option value =\"3\">3:608UDP CLI</option>
<option value =\"4\">4:APP UDP</option>
</select>

参数已经传递过来了,我通过if ($('txtProtecalType')) $('txtProtecalType').value = o.pt;在一个文本框中调试的,就是无法选择列表,不会java真糟糕啊,请大神们赐教
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuri1231 2019-07-03
  • 打赏
  • 举报
回复
感谢天际的海浪,
就是这个根据项目索引号改变列表的选中项目
$('SProtecalType').selectedIndex = o.pt;

我再看看
yuri1231 2019-07-03
  • 打赏
  • 举报
回复
引用 4 楼 天际的海浪 的回复:
o.pt是什么值?你是要改变列表的选中项目还是要修改项目的值?
根据项目的值改变列表的选中项目
$('SProtecalType').value = o.pt;
根据项目索引号改变列表的选中项目
$('SProtecalType').selectedIndex = o.pt;

要修改项目的值,循环$('SProtecalType').options数组
$('SProtecalType').options[i].text = 文字;
$('SProtecalType').options[i].value = 值;

选择整项而已,不要知道具体内容的
Hello World, 2019-07-03
  • 打赏
  • 举报
回复
首先用ID选择要加#:$('#SProtecalType')
不是$('SProtecalType')

可以直接设置$('#SProtecalType').val(你要的值);
天际的海浪 2019-07-03
  • 打赏
  • 举报
回复
o.pt是什么值?你是要改变列表的选中项目还是要修改项目的值? 根据项目的值改变列表的选中项目 $('SProtecalType').value = o.pt; 根据项目索引号改变列表的选中项目 $('SProtecalType').selectedIndex = o.pt; 要修改项目的值,循环$('SProtecalType').options数组 $('SProtecalType').options[i].text = 文字; $('SProtecalType').options[i].value = 值;
jio可 2019-07-03
  • 打赏
  • 举报
回复
$('SProtecalType').value= JSON.parse(o.pt);这里的o.pt是整个下拉的数据,直接赋值肯定匹配不到下来的0-4,应该赋值的是选中的值0-4.
yuri1231 2019-07-03
  • 打赏
  • 举报
回复
引用 1 楼 囧 的回复:
用jQuery更原方便,原生JS要用options去查找设置selectedIndex属性

jQuery("#SProtecalType").val(o.pt);

如果是基于JS的要怎么写?请不吝赐教,头回用在单片机上建WEBJAVA不会啊,谢谢
2019-07-03
  • 打赏
  • 举报
回复
用jQuery更原方便,原生JS要用options去查找设置selectedIndex属性

jQuery("#SProtecalType").val(o.pt);

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧