【问题标题】:jQuery Unobtrusive not working in IE7 or IE8jQuery Unobtrusive 在 IE7 或 IE8 中不起作用
【发布时间】:2012-05-02 22:31:59
【问题描述】:

好的,我已经在 J​​SFiddle 中重现了这个问题。以下形式适用于 Chrome 和 IE9,但不适用于 IE7 或 IE8。我发现一些关于 jQuery 特定版本的传言;我们使用的是 1.4.4。这是小提琴的链接:

http://jsfiddle.net/xtkuV/77/

形式

<form action="" id="step1Form" method="post">
<label for="FirstName">FirstName</label>
<input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
<br/>

<label for="LastName">LastName</label>
<input class="text-box single-line" data-val="true" data-val-length="The field LastName must be a string with a maximum length of 60." data-val-length-max="60" data-val-required="The LastName field is required." id="LastName" name="LastName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span>
<br />

<label for="Age">Age</label>
<input class="text-box single-line" data-val="true" data-val-number="The field Age must be a number." data-val-range="The field Age must be between 1 and 130." data-val-range-max="130" data-val-range-min="1" data-val-required="The Age field is required." id="Age" name="Age" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Age" data-valmsg-replace="true"></span>
    <br/>
    <input type="submit" value="Submit"/>
</form>

Javascript

$(function(){    
    $('#step1Form').live('submit',function(e){
        e.preventDefault();
        console.log('sup');
        //do an ajax request here or something!
    });
});

【问题讨论】:

  • 1.4.4 版本已经很老了。旧版IE存在事件冒泡问题;此外,在&lt;form&gt; 上为“提交”事件设置“实时”处理程序是没有意义的;只需设置一个常规事件处理程序。
  • 好的,但这里是使用 1.7.2 和直接提交处理程序的相同证明的副本。 IE7 和 IE8 中的行为相同。 jsfiddle.net/xtkuV/81
  • 将“live”更改为“bind”,看看会发生什么。 (同时将“console.log”更改为“alert”。)updated fiddle, works for me in IE7 (I get the alert)
  • 哦,等等,也许不是——那是我试过的 Firefox :-) 给我一秒钟... edit 不,它在 IE7 中看起来不错;当我点击“提交”按钮时,我会收到提醒。
  • 如果表单无效,难道不应该防止提交事件冒泡吗?我在这里遗漏了一些东西。

标签: javascript jquery asp.net-mvc-3 jquery-validate


【解决方案1】:

“您可能想做的第一件事就是将 jquery 版本更新到最新版本,今天是 1.9 版

执行此操作后,您的客户端验证将在 Internet Explorer 7 和 Internet Explorer 8 中停止工作。

这是因为 jquery.validate 版本与 jquery 版本 > 1.6 不兼容。解决方案很简单,您还需要更新 jquery.validate 的版本。您可以从 Microsoft 的 CDN 找到当前版本 1.9。 "*

*以上信息摘自this site:

【讨论】:

  • 我有以下内容。但它仍然不起作用jQuery - 2.0.3, jQuery.Validation - 1.11.1, Microsoft.jQuery.Unobtrusive.Validation - 3.0.0
  • 我可以让它与 jQuery 1.11.1(最新的 1.x 版本)和 jQuery.Validation 1.10.0 一起使用。详情见:stackoverflow.com/questions/14818363/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 2013-05-28
  • 1970-01-01
相关资源
最近更新 更多