在下面的代码中,我有一个文本框,我的目的是通过属性传递文本框值,请任何人帮我解决问题。
html代码:
<asp:TextBox ID="txtField" runat="server" ></asp:TextBox>
代码背后的代码:
string strRegularExp = string.Empty;
if (ListOfRegularExpression != null)
{
for (int iRow = 0; iRow < ListOfRegularExpression.Count; iRow++)
{
strRegularExp += ListOfRegularExpression[iRow].ToString() + "~~";
hidRegExp.Value = strRegularExp;
if (iRow == ListOfRegularExpression.Count - 1)
{
strRegularExp = strRegularExp.TrimEnd("~~".ToCharArray());
string Field = txtField.Text.ToString();
txtField.Attributes.Add("onblur", "javascript:ValidateRegExp('" + txtField.Text + ", " + hidRegExp.Value + "');"); //how to pass textbox value
}
}
}
答案 0 :(得分:0)
您正在编写的代码将在其运行的位置添加属性,因此您的txtField将没有任何文本。
您应该可以使用js this
关键字
txtField.Attributes.Add("onblur", "javascript:ValidateRegExp(this.value, '" + hidRegExp.Value + "');");
您还可以使用txtField.ClientID
和一些js来检索文本框。
txtField.Attributes.Add("onblur", "javascript:ValidateRegExp(document.getElementById('"+ txtField.ClientID + "').value, '" + hidRegExp.Value + "');");
这些将起作用的原因是因为你要求javascript获取值而不是.NET,这意味着在onblur事件中评估值,而不是在代码写入属性的时刻,它将在是空的。