-4

如果浏览器是 IE8,我有一个不运行的搜索字段验证。

这是我的javascript:

<script type="text/javascript">
    jQuery("#mini-search-form").submit(function() {
        var match =/[a-zA-Z0-9]+/.exec(jQuery('#mini-search-form #query').val());
      if(!match){
        alert("Please enter valid search words.");
        return false;
      }
      return true;
    });
</script>

我试着用这个脚本包围,<![if !IE 8]>但 Dreamweaver 说这是错误的。

4

3 回答 3

2

基于用户的浏览器代理有选择地运行代码并不是最佳实践。话虽如此,下面是粗略的解决方案:

if(window.navigator.userAgent.indexOf('MSIE 8') == -1){
    jQuery("#mini-search-form").submit(function() {
        var match =/[a-zA-Z0-9]+/.exec(jQuery('#mini-search-form #query').val());
        if(!match){
            alert("Please enter valid search words.");
            return false;
        }
        return true;
});

特征检测/渐进增强是跨浏览器不一致的更优选方法。

于 2013-11-04T19:46:18.760 回答
2
<!--[if !IE 8]-->
<script>
    ...
</script>
<!--[endif]-->
于 2013-11-04T19:55:05.367 回答
0

您可以尝试这样做,但使用特征检测而不是浏览器检测(如果不仅与 相关IE-8

<!--[if !(IE 8)]><!-->
<script>
    jQuery(function(){
        jQuery("#mini-search-form").submit(function() {
            var match =/[a-zA-Z0-9]+/.exec(jQuery('#mini-search-form #query').val());
            if(!match){
                alert("Please enter valid search words.");
                return false;
            }
            return true;
        });
    });
</script>
<!--<![endif]-->

阅读关于条件注释

于 2013-11-04T19:51:57.317 回答