【问题标题】:jQuery code working in FF, Chrome, not in IEjQuery 代码在 FF、Chrome 中工作,而不是在 IE 中
【发布时间】:2016-10-04 02:25:26
【问题描述】:

我有一小段代码,这个:

$(document).ready(function () {
                $("#check").blur(function () {
                    var member = check.value;
                    $('#loading-image').show("fast");
                    $.getJSON('/Endpoint/MemberName/' + member, function (result) {
                        //  var data = JSON.parse(result);
                        var json = result;
                        if (json.result.length != 0) {
                            $("div#preload h2").html("Nombre: " + json.result[0].fullName);
                            jQuery('#services').show("fast");
                        }
                        else {
                            $("div#preload h2").html("No encontrado!");
                            jQuery('#services').hide("fast");
                        }
                        $('#loading-image').fadeOut("fast");

                    });
                });
            });

在 Firefox 和 Chrome 中,sn-p 按预期工作,但在 IE 浏览器中我收到以下错误:

SCRIPT5009:“检查”未定义

知道什么可以帮助我解决这个问题吗?

编辑:添加检查文本框字段:

            <div class="input-group col-md-12">
                <input type="text" class="form-control input-lg" placeholder="Buscar numero de socio" id="check" name="check" />
                <span class="input-group-btn">
                    <button class="btn btn-info btn-lg" type="button">
                        <i class="glyphicon glyphicon-search"></i>
                    </button>
                    <button class="btn btn-primary btn-lg" type="button" data-toggle="modal" data-target="#myModal">
                        <i class="glyphicon glyphicon-plus"></i> Añadir Cliente sin Cuenta
                    </button>
                </span>
            </div>

【问题讨论】:

  • jQuery 和 IE 有哪些版本?
  • 添加了用于检查的 HTML。它在声明 JS 之前进行。 IE 是 IE11 和 jQuery 2.2.0。正如我所说,与 FF 和 Chrome 配合得很好。
  • 你为什么不用this.value?即使浏览器允许,尝试将元素 ID 视为全局变量也是一种不好的做法,但该行位于绑定到相关元素的事件处理程序中,因此 this.value 应该可以正常工作。
  • $("div#preload h2") 会更好$("#preload").find("h2")
  • 假设一个名为check 的变量和元素有点令人困惑,因为它不是一个复选框,而是一个文本

标签: javascript jquery internet-explorer


【解决方案1】:
var member = this.value;
var member = $(this).val();

【讨论】:

  • 是的,它似乎在工作,问题似乎在 var member = check.value;
  • 您可以在模糊处理程序中使用 this 获取检查(html 控件)... var member = check.value;
  • 哦,我知道你来自哪里。让我检查一下
  • $(this).is(":checked") 将始终为 false,因为有问题的元素是 type="text"
猜你喜欢
  • 2023-03-15
  • 2014-05-07
  • 1970-01-01
  • 2011-12-17
  • 2010-12-01
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多