簡體   English   中英

為什么此表達式在Firefox / Chrome中返回true,而在IE中返回false?

[英]Why does this expression return true in Firefox/Chrome and false in IE?

我的表單中有類似於以下代碼:

<input type="hidden" id="submitMyForm" name="submitMyForm" checked="checked" />

當我嘗試在if語句中使用此代碼時,我意識到它對於Firefox / Chrome返回true,但對於IE返回false:

$('#submitMyForm').prop("checked")

這是一個jsfiddle來說明。

IE為什么對這種表達有不同的解釋? 而且,更實際的說,我可以使用的等效表達式在所有瀏覽器中的評估結果都為true?

您的HTML無效(無論如何,在HTML 5中,HTML的早期版本無法在DTD中表達該規則,但在那里仍未得到確認)。 只有單選按鈕和復選框可以具有checked屬性。 隱藏的輸入可能不會。 您遇到的差異是由於瀏覽器嘗試以不同的方式從HTML中的錯誤中恢復。

明智的方法是根本不使用帶有選中屬性的隱藏輸入。

可能您可以改用經過data-checked屬性。 然后使用.data('checked')訪問它。

您還可以繼續使用損壞的HTML並檢查屬性本身(而不是從屬性生成的屬性):

alert($('#submitMyForm').attr("checked"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM