2014-02-14 50 views
1

假設,我選擇從數據庫數據,結果是這樣的:任何更好的方式來打印在html中選中的複選框?

var dbObj = ["Z","E"]; 

然後我想打印3 CheckBox,即 「Z」, 「N」, 「E」

由於從DB中的數據是[「Z」,「E」],則複選框ž校驗對話框E檢查複選框ñ左爲選中。其結果是這樣的:

Result I want

這裏是我的源代碼,你可以把它複製和玩:

<!DOCTYPE html> 
<html> 
<head> 
<title>CheckBox</title> 
</head> 
<script type="text/javascript"> 

var dbObj = []; 
function validate(selection) 
{ 
    switch(selection) 
    { 
     case 0: 
     dbObj = ["Z",1,"E"]; 
     printZNECheckBox(); 
     break; 
     case 1: 
     dbObj = ["Z",1,2]; 
     printZNECheckBox(); 
     break; 
     case 2: 
     dbObj = ["Z","N","E"]; 
     printZNECheckBox(); 
     break; 
     case 3: 
     dbObj = [0, 1, "E"]; 
     printZNECheckBox(); 
     break; 
    } 
} 

function printZNECheckBox() 
{ 
    for (var i = 0; i < dbObj.length; i++) 
    { 
     if (typeof dbObj[i] == 'number') 
     { 
      printUnCheckedBox(dbObj[i]); 
     } 
     else {printCheckedBox(dbObj[i]);} 
    } 
} 

function printCheckedBox(x) 
{ 
    document.write("<input type =\"checkbox\" name=\"box\" id=\""+x+ "\" value=\""+x+"\" checked/>"+x); 
} 

function printUnCheckedBox(x) 
{ 
    var str = ""; 
    switch (x) 
    { 
     case 0: 
     str = "Z"; 
     break; 
     case 1: 
     str = "N"; 
     break; 
     case 2: 
     str = "E"; 
     break; 
    } 
    document.write("<input type =\"checkbox\" name=\"box\" id=\""+str+ "\" value=\""+str+"\"/>"+str); 
} 
</script> 

<body> 
    <input type="button" value="Data 1 from DB" onClick="validate(0)"> 
    <input type="button" value="Data 2 from DB" onClick="validate(1)"> 
    <input type="button" value="Data 3 from DB" onClick="validate(2)"> 
    <input type="button" value="Data 4 from DB" onClick="validate(3)"> 
</body> 
</html> 

回到我的問題:

有沒有更多的直接的方式來實現JavaScript或Java中的相同目標?

+0

我出言 –

+0

Java的**不是**的JavaScript。 Javascript用於客戶端,而Java用於服務器端,並且Web開發中的Java不知道複選框或其他HTML組件。 –

+0

我在做JSP。所以我需要打印HTML組件 – jhyap

回答

1

我認爲這是你在找什麼:

<!DOCTYPE html> 
<html> 
<head> 
<title>CheckBox</title> 
</head> 
<script type="text/javascript"> 

var dbObj = ["Z","N","E"]; 
var result = []; 
function validate(selection) 
{ 
    switch(selection) 
    { 
     case 0: 
     result = ["Z","E"]; 
     printZNECheckBox(); 
     break; 
     case 1: 
     result = ["Z"]; 
     printZNECheckBox(); 
     break; 
     case 2: 
     result = ["Z","N","E"]; 
     printZNECheckBox(); 
     break; 
     case 3: 
     result = ["E"]; 
     printZNECheckBox(); 
     break; 
    } 
} 

function printZNECheckBox() 
{ 
    for (var i = 0; i < dbObj.length; i++) 
    { 
     printCheckedBox(dbObj[i]); 
    } 
} 

function printCheckedBox(x) 
{ 
    var isChecked = ''; 
    if(result.indexOf(x) != -1){ isChecked = "checked"; } 
    document.write("<input type =\"checkbox\" name=\"box\" id=\""+x+ "\" value=\""+x+"\" "+isChecked+"/>"+x); 
} 

</script> 

<body> 
    <input type="button" value="Data 1 from DB" onClick="validate(0)"> 
    <input type="button" value="Data 2 from DB" onClick="validate(1)"> 
    <input type="button" value="Data 3 from DB" onClick="validate(2)"> 
    <input type="button" value="Data 4 from DB" onClick="validate(3)"> 
</body> 
</html> 
相關問題