在属性中传递文本框值

时间:2014-02-14 10:58:24

标签: c# asp.net

在下面的代码中,我有一个文本框,我的目的是通过属性传递文本框值,请任何人帮我解决问题。

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
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您正在编写的代码将在其运行的位置添加属性,因此您的txtField将没有任何文本。

您应该可以使用js this关键字

来引用txtField
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事件中评估值,而不是在代码写入属性的时刻,它将在是空的。