aristas Δημοσ. 22 Φεβρουαρίου 2010 Δημοσ. 22 Φεβρουαρίου 2010 Καλησπέρα, έχω μια φόρμα που εχει 3 γκρουπ με radio σε σελίδα quiz αλλα δεν θέλω να ενεργοποιείται το Submit αν δεν επιλεχθούν. Επίσης να εμφανίζεται παράθυρο διαλόγου ok/cancel με τις επιλογες των απαντήσεων. Ευχαριστώ ><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Welcome to the Knowledge Quiz</title> <script type="text/javascript"> function enableSubmit() { var submitButton = document.getElementById("submit"); submitButton.removeAttribute("disabled"); } function getValues(objName) { var arr = new Array(); arr = document.getElementsByName(objName); } for(var i = 0; i < arr.length; i++) { var obj = document.getElementsByName(objName).item(i); if(obj.checked == checked) alert(obj.id + " = " + obj.value); } } </script> </head> <body id="access_control"> <h3>Welcome to the Knowledge Quiz</h3> <form method="post" action=""> <table width="677" border="2"> <tr> <td> <p align="left">Select a contestant </p> <p align="left"> <label> <input type="radio" name="cont" value="Player1" onchange="enableSubmit();"/>Colin </label> <br/> <label> <input type="radio" name="cont" value="Player2" onchange="enableSubmit();"/>Fred </label> <br/> <label> <input type="radio" name="cont" value="Player3" onchange="enableSubmit();"/>Jim </label> </p> </td> <td> <p>Which US President was assasinated by Lee Harvey Osvald?</p> <p> <label> <input type="radio" name="select" value="Answer1" id="RadioGroup1_1"/>Jimmy Carter </label> <br/> <label> <input type="radio" name="select" value="Answer2" id="RadioGroup1_2"/>John F Kennedy </label> <br/> <label> <input type="radio" name="select" value="Answer3" id="RadioGroup1_3"/>Lindon Johnston </label> <br/> </p> <p>Which is currently the highest grossing Hollywood Movie?</p> <p> <label> <input type="radio" name="select" value="Answer1" id="RadioGroup2_1"/>Titanic </label> <br/> <label> <input type="radio" name="select" value="Answer2" id="RadioGroup2_2"/>Avatar </label> <br/> <label> <input type="radio" name="select" value="Answer3" id="RadioGroup2_3"/>The Great Escape </label> <br/> </p> <p>Which Neil has walked on the Moon?</p> <p> <label> <input type="radio" name="select" value="Answer1" id="RadioGroup3_1"/>Neil Kinnock </label> <br/> <label> <input type="radio" name="select" value="Answer2" id="RadioGroup3_2"/>Neil Down </label> <br/> <label> <input type="radio" name="select" value="Answer3" id="RadioGroup3_3"/>Neil Armstrong </label> </p> <input type="submit" id="submit" name="submit" value="Submit Quiz" disabled="disabled" action="answers.php" onClick = "getValues(select)"/> <input type="submit" name="restart" value="Restart"/> <input type="hidden" name="qp" value="quiz.php"/> </td> </tr> </table> </form> </body> </html>
aristas Δημοσ. 25 Φεβρουαρίου 2010 Μέλος Δημοσ. 25 Φεβρουαρίου 2010 Κανείς δεν γνωρίζει να μου πεί Λοιπόν κατάφερα να κανω το πρώτο μέρος στο οποίο ζητούσα να ενεργοποιείται το submit μετα απο επιλογή των radio, αλλά δεν μπορώ να βρώ πώς θα περάσω τις επιλεγμένες τιμές των radio σε ενα dialog box. Οποιος γνωρίζει κάτι παρακαλώ να μου πεί. Ευχαριστώ
Uberalles_gr Δημοσ. 25 Φεβρουαρίου 2010 Δημοσ. 25 Φεβρουαρίου 2010 Στο tag της φόρμας να βάζεις πάντα name. Επίσης, δεν πρέπει να σου παίζουν σωστά τα radio μιας και έχεις δώσει σε όλα το ίδιο name.Θα πρέπει να τους αλλάζεις τα names. Δηλαδή στην 1η ομάδα πες τα team1, την 2η ομάδα team2,..... Τώρα στο θέμα σου. Καλείς μία function ας την πούμε check > <script language="JavaScript" type="text/javascript"> function check() { /* Ελέγχω για την 1η ομάδα από τα radio ποιο διάλεξε και το αποθηκεύω σε μία μεταβλητή Με την ίδια λογική κάνεις και για τα άλλα */ for (var i=0; i<document.form_name.team1.length; i++) { if (document.form_name.team1[i].checked) { found1 = document.form_name.team1[i].value; } else { found1 = "Δεν έχει επιλέξει κάποιο"; } } ans=confirm("Η τιμή του πρώτου radio είναι..."+found1); if(ans==true) { ...... ...... } else { ...... ...... } } </script> Υπάρχουν διάφοροι τρόποι εγώ σου έδειξα έναν....
aristas Δημοσ. 26 Φεβρουαρίου 2010 Μέλος Δημοσ. 26 Φεβρουαρίου 2010 Ευχαριστώ για την απάντηση Έκανα ορισμένες αλλαγές, οι απαντήσεις θα είναι σε multiselect, μπορώ όμως να εμφανίσω την τιμή μόνο για ένα απο τα 3. Υπάρχει τρόπος να εμφανίζονται και τα αλλα 2? Επίσης θα ήθελα να έχω παράθυρο διαλόγου και οχι απλο. Ευχαριστώ > <html> <head> <title>Welcome to the Knowledge Quiz</title> <script language="JavaScript" type="text/javascript"> function getSelected(opt) { var selected = new Array(); var index = 0; for (var intLoop = 0; intLoop < opt.length; intLoop++) { if ((opt[intLoop].selected)) { index = selected.length; selected[index] = new Object; selected[index].value = opt[intLoop].value; selected[index].index = intLoop; } } return selected; } function outputSelected(opt) { var sel = getSelected(opt); var strSel = ""; for (var item in sel) strSel += sel[item].value + "\n"; alert("Your answers are:\n" + strSel); } </script> </head> <body> <form name="AnswerSelector"> <p>Which US President was assasinated by Lee Harvey Osvald?</p> <select name="question" size=3> <option value="Jimmy Carter">Jimmy Carter</option> <option value="John F Kennedy">John F Kennedy</option> <option value="Lindon Johnston">Lindon Johnston</option> </select> <p>Which is currently the highest grossing Hollywood Movie?</p> <select name="question2" size=3> <option value="Titanic">Titanic</option> <option value="Avatar">Avatar</option> <option value="The Great Escape">The Great Escape</option> </select> <p>Which Neil has walked on the Moon?</p> <select name="question3" size=3> <option value="Neil Kinnock">Neil Kinnock</option> <option value="Neil Down">Neil Down</option> <option value="Neil Armstrong">Neil Armstrong</option> </select> <input type=submit value="Submit Quiz" onclick="outputSelected(this.form.question.options)"> </form> </body> </html>
Uberalles_gr Δημοσ. 26 Φεβρουαρίου 2010 Δημοσ. 26 Φεβρουαρίου 2010 Αλλαγές στην function ouputSelected > function outputSelected(opt,opt2,opt3) { var sel = getSelected(opt); var strSel = ""; for (var item in sel) strSel += sel[item].value + "\n"; var se2 = getSelected(opt2); for (var item in se2) strSel += se2[item].value + "\n"; var se3 = getSelected(opt3); for (var item in se3) strSel += se3[item].value + "\n"; alert("Your answers are:\n" + strSel); } και αλλλαγές στο Submit σου > onclick="outputSelected(this.form.question.options,this.form.question2.options,this.form.question3.options)"> Τώρα εάν έχεις και άλλα select θα πρέπει να αλλάξεις τον κώδικα σε κάτι πιο "δυναμικό". Όταν λες παράθυρο διαλόγου τι εννοείς?Δώσε ένα παράδειγμα να καταλάβουμε τι έχεις στο μυαλό σου
aristas Δημοσ. 26 Φεβρουαρίου 2010 Μέλος Δημοσ. 26 Φεβρουαρίου 2010 Οκ ευχαριστώ Εννούσα το confirm window. τελικά μπόρεσα να το εμφανίσω με > function outputSelected(opt) { var sel = getSelected(opt); var strSel = ""; for (var item in sel) strSel += sel[item].value + "\n"; if (confirm("Your answers are: \n" + strSel)) { location.href = "answers.php" } } Κάτι ακόμα θα ήθελα, έχω ψάξει παντού αλλα δεν βρίσκω τρόπο να κάνω reset την φόρμα, και να επανέρχεται το submit σε κατάσταση μη ενεργή, όπως είναι όταν φορτώνεται η σελίδα. προσπάθησα με function, αλλα και > onClick="document.form1.submit.disable=true" δεν γίνεται τίποτα
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.