2014-10-13 3 views
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> 
+0

당신은'document.write()'를 사용하고 있습니다. 그것은 나쁜 습관입니다. 스타일을'sel.style.display = 'inline';'과 같이 설정합니다. 제출하면 페이지가 완전히 다시로드됩니다. 즉, 자바 스크립트도 마찬가지입니다. 다른 페이지를 쿼리 할 필요가 없으면 JavaScript 만 사용하십시오. 그렇지 않으면 AJAX를 사용하십시오. – PHPglue

+0

배열을 넣을 때까지 페이지가 다시로드되지 않습니다. 모든 페이지가 false로 돌아가서 동일한 페이지에 표시 될 것이기 때문입니다. 그냥 돌아 오는 배열을 필요로합니다. – mee

답변

0

당신은이 일을 위해 checkForm() 콜백 chk를 반환해야합니다.

return chk; 
관련 문제