[英]some_input.prop('required', true); doesn't work in Safari
[英]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.