vbscript和javascript的,帮忙看看

spacet 2005-10-17 01:07:58
本来在一个页面中,我使用的是vbscript来完成一个功能,但是大家知道,在非ie的浏览器中(比如firefox),vbscript就不起作用了,所以我想改成javascript来实现,但是出现了问题,大家帮忙看看啊:

原来的vbscript是这样的:
<SCRIPT language=VBScript>

sub setchange(theoption,thevalue)
select case thevalue
<{section name=sec4 loop=$product_list}>
case <{$product_list[sec4].pid}>
temp = "<{$product_list[sec4].p_price}>"
<{/section}>
end select
theoption.value=temp
end sub
</SCRIPT>

我改成javascript后是这样的:
function setchange(theoption,thevalue)
{
select (thevalue)
{
<{section name=sec4 loop=$product_list}>
case <{$product_list[sec4].pid}>: temp = "<{$product_list[sec4].p_price}>";
<{/section}>
}
theoption.value = temp;
}

浏览器报错是:theoption.value = temp 这一行,缺少对像,但是使用vbscript的时候是正确的啊,同样的调用方法啊,请问这是什么原因呢?高手支着



...全文
448 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2005-10-17
  • 打赏
  • 举报
回复
这个不是VBS与JS的差别问题,而是你写的DHTML不标准,在Firefox 里通过ID取对象不是直接:
theoption.value 这种写法的,而应该是 document.getElementById("theoption").value
这也是W3C国际标准的写法,象 document.all 那都不是国标。

function setchange(theoption,thevalue)
{
var temp = "";
select (thevalue)
{
<{section name=sec4 loop=$product_list}>
case <{$product_list[sec4].pid}>:
temp = "<{$product_list[sec4].p_price}>";
break;
<{/section}>
}
document.getElementById("theoption").value = temp;
}
spacet 2005-10-17
  • 打赏
  • 举报
回复
那再请问一下,调用的时候,比如是一个下拉菜单调用这个函数,传递的参数也要使用这种国标?

我有几个函数用的是document.getElementsByName(name),调用这个的时候也要这样写还是可以直接写表单元素的名字呢?

87,910

社区成员

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

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