2017-08-08 102 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)`