【问题标题】:Using jquery to determine selected option causes "specified attribute is deprecated" warning使用 jquery 来确定选定的选项会导致“指定的属性已被弃用”警告
【发布时间】:2011-12-05 18:12:29
【问题描述】:

可能遗漏了一些非常明显的东西,但我不知道发生了什么。我正在尝试使用 jquery 来确定下拉列表中当前选择的选项 (See fiddle),但是当我执行以下操作时,我在 (FF9) 控制台中收到警告。

var selectedValue=$('#testSelect option:selected').val();

警告信息:

警告:不推荐使用属性的指定属性。它总是返回 true。

我做错了吗?这是我应该关心的事情吗?提前致谢。

【问题讨论】:

  • 这也让我发疯了...您找到任何解决方案还是忘记了?
  • @Mischa - 我暂时放手了 :(
  • 我猜这是 Firefox 中的一个错误。它似乎只发生在选择中。真是浪费时间……
  • 现在我只在 Google Chrome 的最新版本中看到这个,而不是 Firefox 的。想知道为什么?

标签: jquery jquery-selectbox


【解决方案1】:

jquery 正在引用 Attr 对象上的“指定”属性,这在 Firefox 7 中已被贬低,并且始终返回 true。见https://developer.mozilla.org/En/DOM/Attr

我为此提出了一个 jquery 票:http://bugs.jquery.com/ticket/11397

【讨论】:

  • ticket 显示为“已关闭的错误:已修复”。我是否必须更改我的代码中的任何内容,或者下一个 jQuery 版本是否会“修复”这个问题?也许我必须更新我使用的 jQuery 版本?
  • 我现在使用 $(this).get(0).value 直到他们解决这个问题
【解决方案2】:
$(document).on('change','select#FIELD_NAME', function() {
    alert('your selection was: '+$('select#FIELD_NAME').attr('value'));
    return false;
});

亲吻...只要有可能;-)

【讨论】:

    【解决方案3】:

    询问select 标签的值,它知道选择了哪个标签,并将使用该标签作为当前值。

    $('#testSelect').val()
    

    查看:http://jsfiddle.net/Ndzvm/1/

    有时它比你想象的要简单:)

    【讨论】:

    • 应该这样做,但并没有真正回答有关警告消息的问题。这也会在控制台中产生相同的警告消息。
    • Chrome 实际上似乎在任何一个版本中都没有对我发出警告。我不认为该消息来自 jQuery。但也许 jQuery 只是在做一些 Firefox 不喜欢的事情。归根结底,警告只是警告,如果它适用于所有目标环境,那么我不会太担心。
    • @Alex - 抱歉我迟迟没有回复。正如肖恩所提到的,您描述的方法是有效的,但我的问题/担忧是关于 FF 正在抛出的警告。抱歉,我使用“#testSelect option:selected”而不是简单的“#testSelect”的原因是因为我正在扯掉我的头发,试图弄清楚选择器的任何派生是否会消除警告消息;它没有:(
    • 更简单的代码,但仍然产生相同的警告(FF10 错误控制台)。
    • 如果我想要所选选项的 .text() 怎么办
    【解决方案4】:

    你能用这个代码吗

    <script type="text/javascript">
    $(document).ready(function() {
    $('select[id$=<%=DropDownList1.ClientID%>]').bind("keyup
    change", function() {
    if ($(this).val() != "")
    $('#message').text("Text: " + $(this).
    find(":selected").text()
    + ' Value: ' + $(this).val());
    else
    $('#message').text("");
    });
    });
    </script>
    

    【讨论】:

      【解决方案5】:

      如果 id #testSelect 是您的选择名称。

      获取值:

      var selectedValue=$('#testSelect').attr('value');
      

      设置选择值:

      $('#testSelect').attr('value',your value);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2018-08-06
        相关资源
        最近更新 更多