Javascript 页面加载后,隐藏字段中不存在值

Javascript 页面加载后,隐藏字段中不存在值,javascript,asp.net,Javascript,Asp.net,在下面的代码中,我在页面加载中进行了编码。在此代码中,我将正则表达式存储在hidRegExp.Value中。现在,我必须将该值存储在隐藏字段中。现在,在javascript中,我必须在文本框中验证用户输入。但是,当我输入一个值时,它会显示空白警报。但是,我想在警报中显示正则表达式。请帮我做到这一点。 代码隐藏: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if

在下面的代码中,我在页面加载中进行了编码。在此代码中,我将正则表达式存储在hidRegExp.Value中。现在,我必须将该值存储在隐藏字段中。现在,在javascript中,我必须在文本框中验证用户输入。但是,当我输入一个值时,它会显示空白警报。但是,我想在警报中显示正则表达式。请帮我做到这一点。 代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (FieldTypeInfo == FieldType.TextBox)
        {
            TblSearch.Visible = false;
            TblDate.Visible = false;
            tblDropd.Visible = false;
            TblChk.Visible = false;
            lblText.Text = FieldLabel;
            //txtreq.Enabled = this.IsMandatory;

            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());
                        txtField.Attributes.Add("onblur", "javascript:ValidateRegExp('" + txtField.ToString() + "');");
                    }
                }
            }

            hidRegExp.Value = strRegularExp;
            lbl.Text = "The value of the HiddenField control is " + hidRegExp.Value + ".";
        }}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
if(FieldTypeInfo==FieldType.TextBox)
{
TblSearch.Visible=false;
TblDate.Visible=false;
tblDropd.Visible=false;
TblChk.Visible=false;
lblText.Text=字段标签;
//txtreq.Enabled=此为强制性;
string strRegularExp=string.Empty;
if(ListOfRegularExpression!=null)
{
for(int-iRow=0;iRow
代码:


函数ValidateRegExp(txtInput){
var hiddenValue=document.getElementById(“”).value;
警报(“hiddenValue”+hiddenValue+”);
var mySplitResult=新数组();
mySplitResult=hiddenValue.split(“~~”);
对于(i=0;i数组[“+i+”]=”+mySplitResult[i]);
var re=新的RegExp(mySplitResult[i]);
if(txtInput.match(re)){
警报(“成功匹配”);
}否则{
警惕(“不匹配”);
}
}     
}

最初
ListOfRegularExpression
将为空,因此控件将不会进入
if(ListOfRegularExpression!=null)
HiddenField。不会设置值。
我以前遇到过这个问题。老实说,我不记得是如何解决的,但我尝试了一些方法。它们如下:

要显示隐藏字段,请在隐藏字段上添加ClientIdMode作为static,如

<asp:HiddenField ID="hidRegExp" runat="server" EnableViewState="true" ClientIDMode="Static"></asp:HiddenField>
如果这不起作用,请尝试以下方法:

1) 尝试在脚本之前移动隐藏字段

2) 尝试将其作为标签并在JavaScript中使用


希望这有帮助。

我已经打印了标签中的值,但它不在隐藏字段中尝试删除
如果(!IsPostBack)
这肯定不会影响您的功能在标签中我们该怎么做?请发布它在标签中做同样的事情。通过使用ClientIDMode作为静态,您可以强制框架呈现相同的ID,而不是混乱的ID。我要说的一件事是避免使用javascript中的内联代码。如果您再次遇到问题,请告诉我。
<asp:HiddenField ID="hidRegExp" runat="server" EnableViewState="true" ClientIDMode="Static"></asp:HiddenField>
document.getElementById("hidRegExp");