【问题标题】:Client side validation not working on Android browser客户端验证不适用于 Android 浏览器
【发布时间】:2011-02-12 18:36:28
【问题描述】:

客户端验证存在一些问题(使用RequiredFieldValidator、RegularExpressionValidator、CustomValidator 和客户端验证逻辑)。似乎 WebForm_DoPostBackWithOptions 没有被触发或导致未处理的异常使表单执行回发,无论它是否有效。

我尝试使用 ValidationSummary,如果支持 javascript,则将其隐藏:

<script>
   $(document).ready(function() {
      $("#javascriptDisabled").hide();
   }
</script>
...
<div id="javascriptDisabled">
   <asp:ValidationSummary runat="server" ...>
</div>
...
<asp:Button runat="server" OnClick="SendMessage" ...>

我的 .cs 代码是:

protected void SendMessage(object sender, EventArgs e)
{
   if(!Page.IsValid) return;
}

在我的笔记本电脑上禁用 javascript 的 Chrome 上一切正常,但在我的 Android 手机上却不行。问题是手机上的Javascript没有被禁用,它被启用,并且正确地隐藏了ValidationSummary,但由于某种我无法理解的原因不执行客户端验证(Android浏览器上没有开发人员工具:(()。 这非常令人沮丧! :(

有人可以帮忙吗?

谢谢!

编辑:我找到了原因(但不是解决方案,如果存在的话)。我在我的页面中使用 Telerik RadEditor 控件,如果客户端是 Android 默认浏览器,则无法正确呈现所需的所有嵌入式脚本,从而导致 javascript 异常和(可能)浏览器禁用 javascript 运行时。这会导致客户端验证不再起作用。如果有解决此问题的方法,将与 Telerik 一起调查。

【问题讨论】:

  • 你试过在安卓模拟器中运行它吗?也许这对你有帮助? nanaze.com/2009/01/debugging-javascript-on-android.html
  • 嗨塞巴斯蒂安,感谢您的回答。是的,我尝试了模拟器(显然结果相同),但我不知道它有什么帮助。我无法对 android 默认浏览器行为进行更改,我需要找到一些方法在我的应用程序中修复它...

标签: asp.net android validation cross-browser


【解决方案1】:

尝试使用提琴手。当我尝试时,我必须将模拟器设置为通过提琴手代理工作。在我的应用程序中执行此操作(我还将数据放在经过 .NET 身份验证的 WS 上),它起作用了。

Saludos,奥斯卡。

【讨论】:

  • 您好,奥斯卡,感谢您的回答。我尝试使用fiddler,发现使用android浏览器时页面渲染存在一些问题(见EDIT)。
【解决方案2】:

编辑:我找到了原因(但不是解决方案,如果存在的话)。我在我的页面中使用 Telerik RadEditor 控件,如果客户端是 Android 默认浏览器,则无法正确呈现所需的所有嵌入式脚本,从而导致 javascript 异常和(可能)浏览器禁用 javascript 运行时。这会导致客户端验证不再起作用。如果有解决此问题的方法,将与 Telerik 一起调查。

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多