簡體   English   中英

Javascript prop('required', true) 有效但 prop('required', false) 不行?

[英]Javascript prop('required', true) works but prop('required', false) doesn't?

為什么 $('#select_embed') 屬性被設置為 true,而不是 false? 相反,我嘗試了 removeAttribute('required'),但這也不起作用。

<script>

    function showBundles(){
        if (document.getElementById("embed").checked){
            $('#div_embed_bundles').show('fast')
            $('#select_embed').prop('required',true);
        }
        else {
            $('#div_embed_bundles').hide('fast')
            $('#select_embed').prop('required',false);
        }
    }

</script>

理想情況下,如果prop('required',true)工作,那么prop('required',false)也應該工作。 但是您可以嘗試使用removeAttr ,希望這會removeAttr幫助。

function showBundles(){
        if (document.getElementById("embed").checked){
            $('#div_embed_bundles').show('fast')
            $('#select_embed').prop('required',true);
        }
        else {
            $('#div_embed_bundles').hide('fast')
            $('#select_embed').removeAttr('required');
        }
    }

使用 attr() 而不是 prop()。 我使用了 attr('required', true) 和 attr('required',false) 並且都完美地工作。 閱讀https://api.jquery.com/attr/上的文檔以了解何時使用 attr() 以及何時使用 prop()

或者閱讀下面關於 .attr() 的文檔的基本部分:

.attr():獲取匹配元素集中第一個元素的屬性值,或者為每個匹配元素設置一個或多個屬性。

從 jQuery 1.6 開始,.attr() 方法為尚未設置的屬性返回 undefined。 要檢索和更改 DOM 屬性,例如表單元素的選中、選中或禁用狀態,請使用 .prop() 方法。

屬性與屬性 屬性和屬性之間的區別在特定情況下可能很重要。 在 jQuery 1.6 之前,.attr() 方法在檢索某些屬性時有時會考慮屬性值,這可能會導致不一致的行為。 從 jQuery 1.6 開始, .prop() 方法提供了一種顯式檢索屬性值的方法,而 .attr() 方法檢索屬性。

例如,應該使用 .prop() 方法檢索和設置 selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked 和 defaultSelected。 在 jQuery 1.6 之前,這些屬性可以使用 .attr() 方法檢索,但這不在 attr 的范圍內。 這些沒有相應的屬性,只是屬性。

暫無
暫無

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

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