在visual studio 2010中运行javascript函数时出现无效的ID错误

时间:2011-04-03 07:50:34

标签: javascript visual-studio

我在视觉工作室工作。 我收到一个运行时错误:当我点击按钮调用javascript函数时,id无效,该函数与元素id一起使用。 但我可以在页面的视图源中看到具有完全id的元素, 问题出在哪儿 ? 我只使用html元素并得到同样的错误。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>View HTML</title>
<script type="text/javascript" language="javascript">
 Hmove=-100;
 function moveObjRight(obj) 
{    
obj.style.left=Hmove;
Hmove+=2;
if(Hmove<100)
    window.setTimeout("moveObjRight(" +obj.id+ ");", 0);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="btnViewHtml" runat="server" Text="View Html" onclick="moveObjRight(JS)"/>
<IMG SRC="starflower.gif" ALT="Starflower" id="JS">
    <br />
    <br />

</form>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

Button已经在客户端上获得了ID,而不是JS

  

asp:Button ID =“btnViewHtml”

我认为这是你的问题的原因

答案 1 :(得分:0)

您需要OnClientClick,而不是OnClick

<asp:Button 
    ID="btnViewHtml" 
    runat="server" Text="View Html" 
    OnClientClick="moveObjRight(this); return false;"
/>

还要注意传递给moveObjRight函数的参数:this

答案 2 :(得分:0)

您正在传递按钮的ID并将其作为代码中的对象引用...

而不是使用它 <asp:Button ID="btnViewHtml" runat="server" Text="View Html" onclick="moveObjRight(document.getElementById('JS'))"/>

并在脚本中使用此

window.setTimeout("moveObjRight(" +obj+ ");", 0);