查看以下代码
function show(id){
if (document.getElementById(id).style.display == 'none')
{
document.getElementById(id).style.display = '';
document.getElementById(id).removeAttribute("disabled");
}
}
function hide(id){
document.getElementById(id).style.display = 'none';
document.getElementById(id).setAttribute("disabled","disabled");
}
当我隐藏元素时,我也想禁用它,以便提交的值仅适用于现在可见的元素。
然而,它没有按预期工作。我做错了什么?
答案 0 :(得分:2)
尝试设置已禁用的属性
document.getElementById(id).disabled = true; //false
答案 1 :(得分:2)
document.getElementById(id).disabled=true;
答案 2 :(得分:1)
我没有看到你在jsFiddle的任何地方调用hide(id)
,也许你没有发布完整的代码。 Element.setAttribute('disabled', true)
和Element.disabled = true
都有效。由于您使用的是jQuery,请改用prop
。
$('#desire').change(function() {
var id = $(this).val(); //returns Share if Share is selected
var $select = $('#' + id);
var $actions = $('select[name=action]');
$actions.hide(); //hide all actions but the selected one
$select.show().prop('disabled', false); //enable this select
$('select[name=action]').not($select).prop('disabled', true); //disable all other actions
});
$('input#submit').click(function() {
$('select[name=action]:hidden').prop('disabled', true); //required in case the form is submitted directly
alert($('form').serialize()); //only added for testing
return false; //test
});