2013-05-10 69 views
1

我有一个文本框txtUser,用户可以在其中输入用户名,并且此文本框旁边有一个“删除”按钮。我正在使用<asp:button>OnClientClick属性提供删除确认。如何在ASP.NET控件的OnClientClick属性中使用javascript变量

该消息是:您确定要删除此用户吗?这有效。

我要将此信息更改为您确定要删除'用户名'?使用GetElementByID("<%= txtUser.ClientID %>")从文本框中获取用户名的值,并将其存储在一个变量user

<script type="text/javascript"> 
var username = document.GetElementByID(<%= txtUser.ClientID %>") 
</script> 

现在我想在通话的OnClientClick使用该username变量。我想这样的事情,但它没有工作:

<asp:Button ID="BtnDelete" runat="server" 
OnClientClick="return confirm('Are you sure you want delete "+username+"');"> 
Delete</asp:Button> 

回答

2

几乎没有...

<script type="text/javascript"> 
var username = document.getElementByID("<%= txtUser.ClientID %>").value; 
</script> 

然后

<asp:Button ID="BtnDelete" runat="server" OnClientClick="return confirm('Are you sure you want delete '+username+'?');">Delete</asp:Button> 

应该这样做。您需要获取文本框的值,然后将用户名添加到您确定的字符串中,而不是将其附加到ASP控件。

作为可能发出警告的单词,如果在呈现文本框之前尝试获取文本框的值并将其分配给username,则会导致错误。确保username的分配位于标记中的文本框之后,或者使用诸如window.onload之类的内容。

+0

我确信脚本标记是在标记文本之后的下一个开发者更清晰一点,但我我看到警报讯息为_你确定要删除undefined_吗? – Animesh 2013-05-10 03:31:19

+0

我会确保'txtUser.ClientID'返回与源代码中的< 2013-05-10 03:45:55

+0

我一直在获取'object does not support GetElementById'我检查了IE JS调试器。事实证明,这与编写'GetElementById'而不是'getElementById'一样简单。谢谢! – Animesh 2013-05-10 04:39:02

1

这是谁愿意看你做了什么

<script type="text/javascript"> 
function getUserName() 
{ 
var userTextBoxId ='<%= txtUser.ClientID %>'; 
return document.getElementByID(userTextBoxId).value; 
} 
</script> 

然后

<asp:Button ID="BtnDelete" runat="server" OnClientClick="return confirm('Are you sure you want delete ' + getUserName() + '?');">Delete</asp:Button> 
+0

谢谢!你的回答对我也有帮助。 – Animesh 2013-05-10 04:39:19

相关问题