在下面的代码中,我已经在页面加载中编码。在此我已经在hidRegExp.Value中存储了正则表达式。现在我必须将此值存储在隐藏字段中。现在在javascript中我必须在textbox中验证用户输入。但是当我输入一个值时它显示空白警报。但是我想在alert.Pls中显示正则表达式帮助我去做这个。 代码背后:
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 + ".";
}}
代码:
<script type="text/javascript">
function ValidateRegExp(txtInput) {
var hiddenValue = document.getElementById("<%=hidRegExp.ClientID%>").value;
alert("hiddenValue" + hiddenValue+".");
var mySplitResult = new Array();
mySplitResult = hiddenValue.split("~~");
for (i = 0; i < mySplitResult.length; i++) {
//document.write("<br /> Array[" + i + " ]= " + mySplitResult[i]);
var re = new RegExp(mySplitResult[i]);
if (txtInput.match(re)) {
alert("Successful match");
} else {
alert("No match");
}
}
}
</script>
<asp:HiddenField ID="hidRegExp" runat="server" EnableViewState= "true" >
</asp:HiddenField >
<asp:Label ID="lbl" runat="server"></asp:Label>
答案 0 :(得分:0)
最初ListOfRegularExpression
将为空,因此控件不会进入if (ListOfRegularExpression != null)
并且HiddenField.Value
将无法设置。
答案 1 :(得分:0)
我以前遇到过这个问题。老实说,我不记得我是如何解决它的,但我尝试了一些事情。他们在这里:
要显示隐藏字段,请在隐藏字段中将ClientIdMode添加为静态,如
<asp:HiddenField ID="hidRegExp" runat="server" EnableViewState="true" ClientIDMode="Static"></asp:HiddenField>
在JavaScript中,使用:
document.getElementById("hidRegExp");
如果这不起作用,请尝试使用以下方法:
1)尝试在脚本之前移动隐藏字段。
2)尝试将其作为标签并在JavaScript中使用它。
希望这有帮助。