1
배열이 있지만 제출시 동일한 페이지에 표시되지 않습니다. 이 양식은 어떻게해야 작동하는지, 옆에 선택된 것을 표시합니다. 그것을 채우지 않으면 무언가가 들어갈 필요가 있음을 보여줍니다. 배열이 같은 페이지에 표시되지 않도록 내가 뭘 잘못하고있는 걸까요?동일한 페이지에 배열 표시
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex 2</title>
<link href="styles.css" rel="stylesheet">
<script>
function checkForm(){
var chk = true;
var mName = document.getElementById("txtM");
var meth = document.getElementById("methM");
var rad = document.getElementById("radM");
var sel = document.getElementById("selM");
var heal = document.getElementById("a");
var dark = document.getElementById("b");
var ele = document.getElementById("c");
var wep = document.getElementById("imp");
var last = document.getElementById("final");
var randomnumber=Math.floor(Math.random()*5);
var quotes = new Array()
quotes[0] = "You Are A Warrior"
quotes[1] = "You Are A Mesmer"
quotes[2] = "You Are A Elementalist"
quotes[3] = "You Are A Necromancer"
quotes[4] = "You Are A Guardian"
document.write(quotes[randomnumber]);
meth.setAttribute("style", "display:none");
rad.setAttribute("style", "display:none");
sel.setAttribute("style", "display:none");
if (mName.value=='no'){
document.getElementById("methM").innerHTML = "No";
meth.setAttribute("style", "display:inline");
chk = false;
}
if (mName.value=='yes'){
document.getElementById("methM").innerHTML = "Yes";
meth.setAttribute("style", "display:inline");
chk = false;
}
if (mName.value==''){
document.getElementById("methM").innerHTML = "So You Don't Like To Do Any Damage?";
meth.setAttribute("style", "display:inline");
chk = false;
}
if (heal.checked) {
document.getElementById("radM").innerHTML = "Healer";
rad.setAttribute("style", "display:inline");
chk = false;
}
if (dark.checked) {
document.getElementById("radM").innerHTML = "Dark";
rad.setAttribute("style", "display:inline");
chk = false;
}
if (ele.checked) {
document.getElementById("radM").innerHTML = "One with the Elements";
rad.setAttribute("style", "display:inline");
chk = false;
}
if (wep.value==1){
document.getElementById("selM").innerHTML = "Rifle";
sel.setAttribute("style", "display:inline");
chk = false;
}
if (wep.value==2){
document.getElementById("selM").innerHTML = "Bow and Arrow";
sel.setAttribute("style", "display:inline");
chk = false;
}
if (wep.value==3){
document.getElementById("selM").innerHTML = "Daggers";
sel.setAttribute("style", "display:inline");
chk = false;
}
if (wep.value==0){
document.getElementById("selM").innerHTML = "Gotta Have A Weapon!";
sel.setAttribute("style", "display:inline");
chk = false;
}
}
</script>
</head>
<body>
<div class="page">
<main role="main">
<article>
<div id="errMess" class="errMess"></div>
<h1>What Guild Wars 2 Profession Are You</h1>
<div class="cssTable" style="margin-top:-25px;">
<form method="post">
<table>
<tr><td colspan="3"></td></tr>
<tr>
<td><div align="right">Do you like to do high damage?</div></td><td width="217">
<input id="txtM" name="txtM" type="text" size="25"></td><td ><div id="methM" style="display:none"></div></td></tr>
<tr>
<td><div align="right">What best describes you?</div></td><td>
<input id="a" type="radio" name = "group1" value="A">Healer</input>
<input id="b" type="radio" name = "group1" value="B">Dark</input>
<input id="c" type="radio" name = "group1" value="C">Earthling</input>
</td><td><div id="radM" style="display:none"></div></td>
</tr>
<tr>
<td>What weapon would you like to have?</td>
<td>
<select id="imp"><option value="0" selected="true">Select One</option>
<option value="1">Rifle</option>
<option value="2">Bow and Arrow</option>
<option value="3">Daggers</option></select>
</td><td><div id="selM" style="display:none"></div></td>
</tr>
<tr><td colspan="3" align="right"><input type="button" class="styled-button-7" value="Send" onclick="checkForm()"/></td></tr></table></form></div></article>
</main></div>
</body>
</html>
당신은'document.write()'를 사용하고 있습니다. 그것은 나쁜 습관입니다. 스타일을'sel.style.display = 'inline';'과 같이 설정합니다. 제출하면 페이지가 완전히 다시로드됩니다. 즉, 자바 스크립트도 마찬가지입니다. 다른 페이지를 쿼리 할 필요가 없으면 JavaScript 만 사용하십시오. 그렇지 않으면 AJAX를 사용하십시오. – PHPglue
배열을 넣을 때까지 페이지가 다시로드되지 않습니다. 모든 페이지가 false로 돌아가서 동일한 페이지에 표시 될 것이기 때문입니다. 그냥 돌아 오는 배열을 필요로합니다. – mee