我在Expression Web 4.0中创建的网站很难过。所有字段都连接到SQL数据库,我已经包含了一个JavaScript代码来计算某些字段的值。在本地使用Microsoft Visual Studio开发服务器时,该项目运行良好,但是一旦我将站点上传到IIS 7服务器,我似乎无法运行JavaScript。页面不会返回任何错误,但计算不会运行。
我尝试在兼容模式下运行IE,尝试过不同的浏览器,什么也没做。我尝试过使用外部JS文件和同样的问题。
我使用IE和Chrome调试了这个问题,这是它遇到的错误: “无法获取未定义或空引用的属性'值'
我尝试在Form之前和之后放置JavaScript代码,同样的问题。
以下是JavaScript代码:
<script type="text/Javascript">
function Calculate1(Served1) {
var Prepared1val = parseInt (document.getElementById("Prepared1").value);
var RTS1val = parseInt (document.getElementById("RTS1").value);
var Toss1val = parseInt (document.getElementById("Toss1").value);
Served1.value= Prepared1val - Toss1val - RTS1val;
}
</script>
调试器在第一行代码后停止,似乎无法找到值,即使它在那里。
答案 0 :(得分:0)
错误的含义是浏览器尝试获取value
属性为null的对象引用。如果它出现在第一行代码中,则表示没有标识为Prepared1
的元素。你确定它在那里吗?案例在元素ID中很重要。
如果问题是您的硬编码ID与页面中的ID不匹配,则应考虑使用ClientID属性。
答案 1 :(得分:0)
您正在引用这些元素:“Prepared1”,“RTS1”,“Toss1”。移动代码时确保这些元素名称仍然可用 - 听起来好像不是。 ASP可以更改元素ID。
答案 2 :(得分:0)
好的,我找到了解决方案。感谢所有人的帮助。正如Codenoire所说,ASP正在改变ID名称,当它运行时,它在ID名称之前添加“FormView”。我解决了一半的问题,因为它只适用于IE而不适用于Chrome,在Chrome中,ID被重命名为其他内容,这很奇怪,但只要它适用于IE我很高兴。再次感谢你!