在ASP.net按钮单击使用VB脚本填充一个ASP.Net文本框
我有一个vbscript函数,它将从ActiveX控件IntegriSign1中获得一个值,如下面的代码所示。在ASP.net按钮单击使用VB脚本填充一个ASP.Net文本框
我在我的asp.net页面中有一个ASP.net Texbox和ASP.net按钮,如下面的代码所示。
从我GetSignData()函数,我怎么能填充txtIntegri1与SignData价值
感谢
<script type="text/vbscript" >
sub GetSignData()
SignData=window.document.IntegriSign1.GetSignData()
'window.document.frmIntegriSign.txthashdata.value
set t1=window.document.getElementById("<%=txtIntegri1.clientID%>")
If tl<> null Then
t1.value=SignData
else
msgbox signData
End If
end sub
</script>
<asp:TextBox ID="txtIntegri1" runat="server" ></asp:TextBox>
<input type="button" id="btnAccept" name="btnAccept" runat="server" value="Accept " onclick="GetSignData();" />
我得到一个错误对象所需txtIntegri
您可以参考文本框的ID修改您的VBScript以包含如下内容:
<script type="text/vbscript" >
sub GetSignData()
' assign SignData
' SignData=window.document.IntegriSign1.GetSignData()
set txtIntegri = document.getElementById("<%= txtIntegri1.ClientID %>")
txtIntegri.value = SignData
end sub
</script>
将其分配给变量以引用文本框,然后为其分配所需的值。
编辑:作为乔尔提到,您的文本框的当前可见性阻止任何访问它。为了上面的工作,你需要显示文本框。
这是我的工作示例。一个区别在于onClick事件中我必须删除分号“;”让它触发。如果您启动一个新项目并将其放入,不包括顶部的“<%@ Page ...”声明,您应该能够看到正在更新的文本框。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/vbscript">
sub GetSignData()
signData = "Hello, StackOverflow!"
set myTextbox = document.getElementById("<%= Textbox1.ClientID %>")
myTextbox.value = signData
end sub
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="Textbox1" runat="server" Text="Hello, World!" />
<input type="button" id="btnAccept" name="btnAccept" runat="server" value="Accept " onclick="GetSignData()" />
</div>
</form>
</body>
</html>
你不能。您的文本框上的Visible="false"
属性意味着它根本不呈现为html。就您的浏览器而言,它不存在。
但是放在一边(假设您有其他代码可以纠正这种情况),您可以使用Ahmad Mageed建议的.ClientID
属性引用该控件的ID。
好赶上:) ... 15个字符 – 2009-09-08 16:11:23
嗨,当我添加此,我得到一个错误 window.document.hdIntegriSign1.clientID.value = SignData 对象不suppoert widow.document.hdIntegriSign1属性或方法 – acadia 2009-09-08 20:24:12
@acadia:请更新您的问题,您的最新的代码,所以我们可以帮助你更好。我已更新我的帖子以显示如何设置txtIntegri1文本框。你提到的错误似乎是你如何获得SignData值的一部分。 – 2009-09-08 21:20:15
Ahmad Mageed,我已经更新了代码和错误消息,我能够正确获取SignData值,但是当我尝试设置文本框的值时,它正在抛出对象所需的错误。谢谢 – acadia 2009-09-09 14:20:52