2 dixuecheng dixuecheng 于 2014.12.19 09:16 提问

webform的验证控件的无法启动客户端脚本验证?

webform的验证控件的EnableClientScript设为true为什么还是无法启动客户端脚本验证?
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="App003_EmptyWebForm.Login" %>

<!DOCTYPE html>








    <asp:Label ID="Label1" runat="server" Text="用户名"></asp:Label>
    <asp:TextBox ID="txt_username" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="validate1" runat="server" ControlToValidate="txt_username" ErrorMessage="必填" ValidateRequestMode="Enabled"></asp:RequiredFieldValidator>
    <br />
    <asp:Label ID="Label2" runat="server" Text="密码"></asp:Label>
    <asp:TextBox ID="txt_pwd" runat="server" TextMode="Password"></asp:TextBox>
    <asp:RequiredFieldValidator ID="validate2" runat="server" ControlToValidate="txt_pwd" ErrorMessage="必填" ValidateRequestMode="Enabled"></asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" ValidateRequestMode="Enabled" />

</div>
</form>


上面是代码,哪里有问题???

3个回答

save4me
save4me   Ds   Rxr 2014.12.19 09:43

你的代码中 ValidateRequestMode="Enabled"这个属性是哪里来的?RequiredFieldValidator控件好像没有这个属性。去掉看一看。
另外,最好在服务器端使用Page.IsValid验证提交的内容,防止万一客户端验证没有生效或者人为跳过了

protected void Button1_Click_Click(object sender, EventArgs e)
{
if(Page.IsValid)
{
btnSubmitForm.Text = "My form is valid!";
}
}


dixuecheng
dixuecheng 找到原因了,是页面自动添加的jquery脚本没找到,aspx页面这些自动加载的<script>结点在哪里设置?
3 年多之前 回复
dixuecheng
dixuecheng 客户短的IsValid能过获取验证结果,但我想知道的是客户端的验证,ValidateRequestModel是“确定控件是否验证客户端输入”,加上去掉都一样,客户端验证不起作用,总是回发了才显示验证结果。
3 年多之前 回复
save4me
save4me   Ds   Rxr 2014.12.19 09:47

还有,在浏览器中按F12打开开发者工具,打开你的页面,在控制台标签页里面看看是否有js错误,因为js错误可能导致页面的其他js代码不能执行。

dixuecheng
dixuecheng 找到原因了,是页面自动添加的jquery脚本没找到,aspx页面这些自动加载的<script>结点在哪里设置?
3 年多之前 回复
save4me
save4me   Ds   Rxr 2014.12.22 10:07

你的.net framework版本是4.5的吗?参考WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive)
在global.asax.cs添加下的代码注册,Jquery的版本和路径可以根据需要替换成需要的,jquery可以通过nuget或者网站上下载

protected void Application_Start(object sender, EventArgs e)
{
string JQueryVer = "1.7.1";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-" + JQueryVer + ".min.js",
DebugPath = "~/Scripts/jquery-" + JQueryVer + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!