Jag har ett formulär med 10 frågor. Alla frågor har tre svarsalternativ vardera. Jag har tänkt att alla frågor måste vara besvarade innan jag sparar infon. Ingen radiobutton är markerad när sidan laddas. Varje radiobutton grupp heter fraga1, fraga2 ...fraga10 <b>Sidan ska väl inte heller postas om alert inträffar?</b> Om jag kör denna kodsnutt alert(document.namnet.fraga1.checked); Ett exempel att utgå från: Tack för hjälpen, det funkade, men jag har ytterligare frågor. Delfråga 1: Jag förstår inte hur ditt formulär ser ut. Jag har samma problem men löste sig dock inte med scriptet. Problem med radiobutton
Jag vill alltså kunna kontrollera att alla frågor markerats innan jag sparar frågorna. Koden nedan använder jag men det fungerar ej: Det som händer är att det spelar ingen roll ifall jag kryssar i alla eller anstaka frågor så vissas felmeddelandet att alla frågorna saknas och sidan postas. Sidan ska väl inte heller postas om alert inträffar? Min form tag pekar på en annan sida save.asp men den ska väl inte postas?
Hoppas ni kan svara på mina funderingar
<code>
function check(){
var fel;
if (!(namnet.fraga1.checked)){
fel = "Fråga 1 saknas\n";
}
if (!(namnet.fraga2.checked)){
fel = fel + "Fråga 2 saknas\n";
}
...
if (!(namnet.fraga10.checked)){
fel = fel + "Fråga 10 saknas\n";
}
If fel.length > 0{
alert(fel);
{
else}
Ska posta formuläret här
{
}
</code>Sv: Problem med radiobutton
Om alert inträffar eller inte spelar ingen roll. Det som avgör om formuläret postas är vilket booleskt värde som returneras från koden.
Hur ser HTML-koden för formuläret ut? Jag vill kolla din JavaScript-kod mot formuläret.
Vad är 'namnet' för objekt? Är det formulärets name-attribut, så bör du skriva document.forms["namnet"], även om det måhända fungerar ändå i IE.Sv:Problem med radiobutton
Får felet undefined istället för true eller flase
Har kollat så att jag skrivit rätt namn på formulär och radiobuttonSv: Problem med radiobutton
<script type="text/javascript">
function foo()
{
var alla_fel = "";
for(var q=1; q<=4; q++) {
var r = document.f[ "r[" + q + "]" ];
var detta_fel = "Fråga " + q + " saknas\n";
for(var i=0; i<r.length; i++) {
if(r[i].checked) {
detta_fel = "";
break;
}
}
alla_fel += detta_fel;
}
if(alla_fel != "") {
alert(alla_fel);
return false;
}
return true;
}
</script>
<form name="f">
<input type="radio" name="r[1]" value="1">
<input type="radio" name="r[1]" value="2">
<input type="radio" name="r[1]" value="3">
<br>
<input type="radio" name="r[2]" value="1">
<input type="radio" name="r[2]" value="2">
<input type="radio" name="r[2]" value="3">
<br>
<input type="radio" name="r[3]" value="1">
<input type="radio" name="r[3]" value="2">
<input type="radio" name="r[3]" value="3">
<br>
<input type="radio" name="r[4]" value="1">
<input type="radio" name="r[4]" value="2">
<input type="radio" name="r[4]" value="3">
<br>
<input type="submit" onclick="return foo()">
</form>
Sv:Problem med radiobutton
Vill man inte delta i undersökningen väljer man naturligtvis alt. Nej. Om man av misstag klickar i ngn fråga fast kunden inte vill delta kan man inte spara som ett Nej. Hur ska jag kunna ta bort val som klickats i av misstag.
Vill inte ha en reset knapp, bara tömma radiobuttons genom en funktion?
En annan sak, hur gör jag om man valt tex fråga 8 ska man inte behöva fylla i fråga 9?
Har provat modifiera ovanstående kod men får det inte att fungeraSv: Problem med radiobutton
Delfråga 2: Man får lägga in det som ett specialfall (usch!)
for(var q=1; q<=4; q++) {
// Fråga 4 behöver inte vara ifylld om man kryssat i 3:e (index 2) rutan på fråga 3.
if(q == 4 && document.f["r[3]"][2].checked)
continue;
var r = document.f[ "r[" + q + "]" ];
var detta_fel = "Fråga " + q + " saknas\n";
for(var i=0; i<r.length; i++) {
if(r[i].checked) {
detta_fel = "";
break;
}
}
alla_fel += detta_fel;
}
Sv: Problem med radiobutton
Här är min kod:
<?php
if (!isset($_SESSION['remsa'])) {
echo "<form action=\"thepage2.php\" method=\"post\" name=\"formet\" onsubmit=\"return foo();\">";
}else{
echo "<form action=\"textremsa.php\" method=\"post\" name=\"formet\" onsubmit=\"return foo();\">";
}
// use $result here to output page content
while ($rad = mysql_fetch_array($result))
{
$sv_result = mysql_query("SELECT * FROM Svarsalternativ_temp WHERE Fid =".$rad["Fid"]." ORDER BY Fid");
?>
<div id="wrapper">
<table border=0>
<tr><th colspan="3"><b>Fråga <?php echo $rad["Fid"];?><b></th></tr>
<tr><td colspan="3"><b><?php echo $rad["Fragetext"];?></b></td></tr>
<?php $count=1;
while ($sv_rad = mysql_fetch_array($sv_result)){
?>
<tr><td><?php echo $count ;?></td><td><?php echo $sv_rad["svarstext"];?></td><td width="10"><input type="radio" name="svar[<?php echo $sv_rad["Fid"];?>]" value="<?php echo $sv_rad["sid"];?>"></td></tr>
<?php
$count++;
} ?>
</table>
</div>
<br><br>
<?php
}
?>
<h2>Övriga kommentarer<h2>
<textarea cols="50" rows="5" name="textfalt[]">
</textarea>
<br>
<br>
<input name="submit" type="submit" value="Skicka!">
</form>
<?php
mysql_close($db);