qq_35420074 2023-09-22 18:32 采纳率: 0%
浏览 11

ASP.NET中RequiredFieldValidator控件失效

在将代码迁移后,edge浏览器访问发现RequiredFieldValida控件对textbox验证失效,从RequiredFieldValidator控件生成的js中(WebResource.axd)知道是在

     if (typeof(val.evaluationfunction) == "function") {
            val.isvalid = val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
                typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
                ValidatorSetFocus(val, event);
            }
        }

中 typeof(val.evaluationfunction)不是function而引起的,RequiredFieldValidator控件生成的html标签中evaluationfunction="RequiredFieldValidatorEvaluateIsValid",而在IE浏览器中生成的是

evaluationfunction="function RequiredFieldValidatorEvaluateIsValid(val) {
    return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
}“
  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-22 23:42
    关注

    引用 皆我百晓生 小程序回复内容作答:
    在ASP.NET中,当RequiredFieldValidator控件失效时,可能是由于浏览器兼容性问题引起的。较新版本的浏览器(如Edge)对于某些特定的JavaScript函数和语法可能存在不同的解析行为。

    为了解决这个问题,你可以尝试以下几种方法:

    1. 确保你的ASP.NET版本是最新的,并且已经应用了最新的补丁和更新。

    2. 检查你的ASP.NET代码中是否包含任何给RequiredFieldValidator控件设置了ClientIDMode属性的代码。如果有,尝试将ClientIDMode属性设置为Auto。

    3. 在页面中添加一个meta标签,强制浏览器使用IE Edge模式加载页面。在标签内添加以下代码:

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    
    1. 在页面加载事件或者Page_Init事件中,添加以下代码以强制将RequiredFieldValidator的evaluationfunction属性设置为指定的JavaScript函数:
    RequiredFieldValidator1.evaluationfunction = RequiredFieldValidatorEvaluateIsValid;
    

    确保将RequiredFieldValidator1替换为你实际使用的控件ID。

    这些方法中的一种可能会解决你的问题。如果问题仍然存在,请考虑使用其他验证控件或自定义JavaScript验证来代替RequiredFieldValidator控件。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月22日
  • 创建了问题 9月22日

悬赏问题

  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振