好的,我正在动态创建Asp.net验证控件并将它们插入更新面板.验证适用于IE和Firefox,但不适用于Chrome或Safari.
这是aspx文件.不要问为什么我没有使用按钮服务器控件...
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<input id="Button1" type="button" value="submit" onclick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "btnNext", true, "", "", false, true))' />
</ContentTemplate>
</asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)
这是后面的代码:
Dim Survey As New Survey
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request("__EVENTARGUMENT") = "btnNext" Then
NextClick()
End If
Label1.Text = Date.Now.ToString
End Sub
Private Sub NextClick()
Survey.RenderPage(PlaceHolder1)
End Sub
Run Code Online (Sandbox Code Playgroud)
这是班级:
Public Class Survey
Public Sub RenderPage(ByVal PlaceHolder …Run Code Online (Sandbox Code Playgroud) 验证服务器控件是否比javascript更好?它们是否限制我们,因为我们只能使用它们提供的功能.请帮帮我.我在自己的博客上阅读了验证服务器控件
在以下代码中为什么要ValidatorValidate(v)验证RequiredFieldValidator页面上的所有控件?它应该只执行RequiredFieldValidator1不能RequiredFieldValidator2.
这是代码.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function check() {
var v = document.getElementById("<%=RequiredFieldValidator1.ClientID%>");
ValidatorValidate(v);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button1" runat="server" OnClientClick="check()" Text="Check" />
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) javascript asp.net requiredfieldvalidator validation-controls
我在页面上有几个ASP文本框控件,添加了自定义验证器.我有保存按钮,它验证这些文本框.我刚刚添加了与文本框相同的验证组.
为了合并addtional要求,我为Save按钮添加了onClientClick函数.但很高兴发现由于验证组(验证器控件)而导致的验证未触发,而是调用onClientClick函数并调用服务器端Click事件.
Javascript代码
function ValidateInputs(source, args) {
var regex = /^(-{0,1}\d{1,100})$/;
if (args.Value.length < 1) {
$("span[id$='spn_error']").html('Please Enter ' + $(source).attr("errormessage"));
$("span[id$='spn_error']").show();
args.IsValid = false;
return;
}
else if (!regex.test(args.Value)) {
$("span[id$='spn_error']").html($(source).attr("errormessage") + ' allows only numbers');
$("span[id$='spn_error']").show();
args.IsValid = false;
return;
}
else {
if ($("span[id$='spn_error']").html().indexOf($(source).attr("errormessage")) >= 0)
$("span[id$='spn_error']").hide();
args.IsValid = true;
return;
}
}
function isValidTracker() {
//Dummy Code Say Confirm button
return(confirm('Are you sure');)
}
Run Code Online (Sandbox Code Playgroud)
HTML代码
<span class="errormesg" runat="server" id="spn_error" style="display: none;
font-size: 9px;"></span>
<asp:TextBox ID="txtLastMonthCount" runat="server" …Run Code Online (Sandbox Code Playgroud) 我申请RangeValidator了TextBox.但它总是显示错误:无效范围,虽然我给出了最小值10和最大值25.我希望用户不能输入长度小于10且大于25的值.我希望用户可以输入任何内容,所以我type="string"在RangeValidator.但它总是给我错误消息:无效范围.
<td>
<asp:TextBox ID="tbPassword" runat="server" MaxLength="25" type="password">
</asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPassword" runat="server"
ControlToValidate="tbPassword" ForeColor="red" Display="Dynamic"
ErrorMessage="Password is required." SetFocusOnError="true">
</asp:RequiredFieldValidator>
<asp:RangeValidator ID="rvPassword" ControlToValidate="tbPassword"
ForeColor="red" Display="Dynamic" MinimumValue="10" MaximumValue="25"
SetFocusOnError="true" Type="String" runat="server"
ErrorMessage="Invalid Range">
</asp:RangeValidator>
</td>
Run Code Online (Sandbox Code Playgroud)