2017-08-08 81 views
0

不应该此JavaScript只显示一个未经检查的复选框,其后是文本“MyCheckBox”?相反,它只是显示“已检查”。HTML复选框将无法正确显示与javascript

<html> 
<head> 
<script> 
    var data = false; 
    document.write('<input type="checkbox" ' + data ? "checked" : "" + '>MyCheckBox'); 
</script> 
</head> 
<body> 


</body> 
</html> 
+1

'head'元素不是为了呈现任何HTML。此外,三进制应该被包装在字符串连接的括号内。 – Teemu

+0

你丢失了括号 – Gerardo

+1

'document.write(' MyCheckBox');'刚刚添加的禁忌物 – ihpar

回答

1

这里的修正:

document.write('<input type="checkbox" ' + (data ? "checked" : "") + '>MyCheckBox'); 

你失踪括号。

另外,不要把那里面的<head>,就像Teemu说的那样,你不能在那里呈现HTML。

+0

杰出!我不知道我必须这样做。 – birdus

0

只要做到这一点。

var data=false, 
 
a=document.createElement("input"); 
 
a.setAttribute("type","checkbox"); 
 
a.checked=data; 
 
document.body.append(a);

0

即使你可以有这条线所需的结果:

document.write("<input type='checkbox' " + (data ? "checked" : "") + ">MyCheckBox");

这是不是最好的方式,你正在写一个流,这是一个冒险的业务。以结构化的方式处理,你可以这样做:

`var data = false; 
var check=document.createElement("input"); 
check.id="mycheckbox" 
check.type="checkbox"; 
check.checked=data; 
document.body.appendChild(check)`