Javascript JS-根据输入类型添加选定或选中的

Javascript JS-根据输入类型添加选定或选中的,javascript,forms,Javascript,Forms,在遍历表单选项时,我会根据它们的值将它们的选项设置为默认值 由于我有select和radio/复选框,所以有两种设置默认值的方法—selected/checked。有没有什么方法可以用纯JS来简化-既可以选择也可以检查 if (param.type.select) { this.form.querySelector('[value="' + optionKey+'"]').selected = true; } else { this.for

在遍历表单选项时,我会根据它们的值将它们的选项设置为默认值

由于我有select和radio/复选框,所以有两种设置默认值的方法—selected/checked。有没有什么方法可以用纯JS来简化-既可以选择也可以检查

if (param.type.select) {
          this.form.querySelector('[value="' + optionKey+'"]').selected = true;
        } else {
          this.form.querySelector('[value="' + optionKey+'"]').checked = true;
        }  
您可以对所有3种输入类型使用
checked
。您可以对所有3种输入类型使用
checked
,以读取选定或选中的值。要设置所选选项,您需要
selected
-属性

//设置选中或选中的
const setSelected=(el,isSelect)=>el[isSelect?”selected:“checked”]=true;
//初始化选择、复选框和单选按钮的值
['3','cb3','r2'].forEach(v=>{
常量elem=document.querySelector(`[value='${v}']`);
元素和
(['checkbox','radio'].find(v=>elem.type==v)||
元素parentNode.options)和
setSelected(elem,elem.parentNode.options);
});
//添加更改处理程序
文件。添加的文件列表(“更改”,显示值);
函数showValues(){
console.clear();
console.log(`所选选项值:${
document.querySelector(“选择选项:选中”).value}`);
document.querySelectorAll(“输入:选中”)
.forEach(v=>console.log(`value of checked${v.type}:${v.value}`));
}

选择0
选择1
选择2
选择3

cb 1
cb 2
cb 3

r1 r2
r3
您可以使用
this.form.querySelector(…)[param.type.select?”selected:“checked”]=true,不确定这是否是一种改进:)我认为没有一种简单的方法可以做到这一点,我认为这是因为选项/选择和输入有一些根本不同的行为。我将设置select(而不是选项)的
,以及复选框的
已选中
。此行为似乎没有备份,它只定义了
已选中
IDL属性。它可能很好地工作,但不保证任何规范都能工作。我投了赞成票,因为我相信代码会运行,但规范没有指出这通常会工作抱歉,投了反对票,我认为这是可行的,但这只是因为您的HTML在第三个选项上选择了
,如果编辑代码段,这将不起作用。您会注意到,
.checked=true
实际上并不在
选项上执行任何操作。此代码至少在Firefox、Edge和Chrome中可用。@KooiInc此代码在Chrome中不可用。这仅仅是因为在HTML中,
选项
已被选中