【问题标题】:.click does not fire client-side validation in IE8.click 不会在 IE8 中触发客户端验证
【发布时间】:2013-06-29 01:41:22
【问题描述】:

所以我有一个创建页面,其中包含一个 MVC Html.BeginForm,其中包含输入控件和一个提交按钮 (id = "myButton")。此表单加载在我的编辑页面的 iframe (id = "myFrame") 中。编辑页面有一个带有 iframe 的模式弹出窗口。当我在编辑页面的模式弹出窗口中单击一个按钮时,我在我的 javascript 文件中调用 $("#myFrame").contents().find("#myButton").click() 。

我的问题是,当我调用按钮的 .click() 时,为什么它不会在 IE8 中触发我的客户端验证?我在chrome上试过了,效果很好。

我已经浪费了 3 天的时间来寻找答案,但到目前为止我一无所获。非常感谢您的帮助。

【问题讨论】:

  • 小优化,但是你把 $("#myFrame").contents().find(#myButton").click() 变成 $(#myButton").click()
  • 我记得这样做了,但它不起作用,因为按钮位于 iframe 内。

标签: jquery asp.net-mvc


【解决方案1】:

事件在不同的浏览器中可能会变得很棘手并且表现不同。试试这个:

$("#myButton").trigger("click");

jQuery.event.trigger("click", button);

【讨论】:

  • 我之前尝试过第一个,但没有成功。让我稍后再试试第二个。希望这行得通。
  • @user2533730 还会在您的 IE8 中打开客户端错误,并确保在触发验证器之前/期间没有 javascript 错误(IE 存在一个已知问题,即在以编程方式触发时未定义验证器事件)
  • 问题是,当我在 iframe 中单击 myButton 时,即使在 IE8 上也可以正常工作。但是,当我单击模态对话框中调用 .onclick 的按钮时,就会出现问题。我确信在验证器被触发之前没有 javascript 错误,但在此期间我需要检查。
  • 我都试过了,但都不起作用。没有 javascript 错误。有没有人知道出了什么问题?
  • 当你说它在 iframe 中而不是在弹出窗口中工作时,唯一的问题是你的 jquery 选择器 $('...')。在调用“click”之前,您能否调试并确认 jquery 变量在列表中至少有一个对象(按钮)? (换句话说,将您的代码分成多行)
猜你喜欢
  • 1970-01-01
  • 2012-03-10
  • 2017-05-08
  • 2018-02-24
  • 2011-05-27
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多