webForumDet fria alternativet

"Ett objekt förväntas"

22 svar · 515 visningar · startad av Webslave

WebslaveMedlem sedan maj 2002647 inlägg
#1

Antagligen nått litet skit som jag har glömt att lägga till/ta bort i koden men jag kommer inte på det nu.

Får detta felmeddelande:

Ett objekt förväntas rad 178

Rad 178:
<form action="actions/users/messagesDelete.php" name="messagesDelete" method="POST" onsubmit="return checkDelete();">

Funktionen checkDelete:

var bCheckad=false
function checkDelete(){
	var chs=0;
	for(cnt=0;cnt<document.messagesDelete.messToDelete.length;cnt++){
		if(document.messagesDelete.messToDelete[cnt].checked){
			chs=chs+1;
		}
	}
	if(chs<1){
		alert("Du måste markera minst ett meddelande!");
		return false;
	}
	else{
		return confirm("Är du säker på att du vill ta bort markerade meddelanden?");
	}
}

Får även fel med denna kod:

function checkall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=true;
		}
	}
}

Anropas med denna kod:
<a href="#" onClick="checkall(document.messagesDelete,'messToDelete');">markera</a>

Felmeddelande:
Ett objekt förväntas

Några idéer?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Jag skulle tippa på att du har något html-fel på sidan. Formulär i formulär, att du inte har avslutet något element korrekt innan formuläret eller något sådant som gör att webbläsaren inte "hittar" formuläret när koden exekveras.

Har du validerat sidan?

WebslaveMedlem sedan maj 2002647 inlägg
#3

Den är inte valid ( har inte gått igenom den med att ändra "&" tecken till "& amp;" så det är det enda den klagar på.

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Kan du länka till sidan? Kör du bara koden i exemplet så fungerar det.

<script type="text/javascript">
var bCheckad=false
function checkDelete(){
	var chs=0;
	for(cnt=0;cnt<document.messagesDelete.messToDelete.length;cnt++){
		if(document.messagesDelete.messToDelete[cnt].checked){
			chs=chs+1;
		}
	}
	if(chs<1){
		alert("Du måste markera minst ett meddelande!");
		return false;
	}
	else{
		return confirm("Är du säker på att du vill ta bort markerade meddelanden?");
	}
}
</script>
<form action="actions/users/messagesDelete.php" name="messagesDelete" method="POST" onsubmit="return checkDelete();">
<input type="checkbox" name="messToDelete" value="1">
<input type="checkbox" name="messToDelete" value="2">
<input type="checkbox" name="messToDelete" value="3">
<input type="submit" value="Skicka">
</form>

... så det borde vara något annat som stör.

WebslaveMedlem sedan maj 2002647 inlägg
#5

Checkboxen heter messToDelete[] btw (använder PHP)

Och du måste vara reggad för att komma åt den funktionen samt att sidan inte är klar på långa vägar...

WebslaveMedlem sedan maj 2002647 inlägg
#6

Jag testade att slänga ut det som jag har i ett nytt, separat, dokument... funkade inte heller:

<script type="text/javscript" language="javascript">
var bCheckad=false
function checkDelete(){
	var chs=0;
	for(cnt=0;cnt<document.messagesDelete.messToDelete.length;cnt++){
		if(document.messagesDelete.messToDelete[cnt].checked){
			chs=chs+1;
		}
	}
	if(chs<1){
		alert("Du måste markera minst ett meddelande!");
		return false;
	}
	else{
		return confirm("Är du säker på att du vill ta bort markerade meddelanden?");
	}
}
function checkall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=true;
		}
	}
	var checkedAll = 1;
}
function uncheckall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=false;
		}
	}
	var checkedAll = 0;
}
</script>

<form action="actions/users/messagesDelete.php" name="messagesDelete" method="POST" onsubmit="return checkDelete();">
<a href="#" onClick="checkall(document.messagesDelete,'messToDelete');">Markera</a>
<?PHP
for($s = 0; $s < 5; $s++){
	?>
	<input type="checkbox" name="messToDelete[]" value="<?PHP echo $row['messID'];?>">
	<?PHP
}
?>
<input type="submit">
</form>

Markera funkade inte heller... jag måste ha glömt något

dectgapMedlem sedan sep. 20021 655 inlägg
#7

Webslave skrev:

Checkboxen heter messToDelete[] btw (använder PHP)

Och du måste vara reggad för att komma åt den funktionen samt att sidan inte är klar på långa vägar...

Om namnet innehåller " [ ] " kan du inte peka på elementet genom document.formulärsNamn.elementsNamn.

Istället får du skriva:

document.messagesDelete.elements["messToDelete[]"]
WebslaveMedlem sedan maj 2002647 inlägg
#8

Bah!

Inget fungerar... ok... vad göra... kan ni hilfa mig skriva ett nytt script?

checkbox heter som sagt: messToDelete[]
formnamn: messagesDelete

Jag behöver en checkall/uncheckall funktion samt en som kollar om något är ifyltt och om något är det så ska man bekräfta att man vill ta bort. Hjälper ni mig med detta då är jag er evigt tacksamma.

WebslaveMedlem sedan maj 2002647 inlägg
#9

Eller om ni kan se något i källkoden som spökar hojta på det så kanske man slipper skriva nytt (ganska mycket läsning)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MarilynManson.se - - // - - Where the Swedes are Dancing with the Devil
- - // - -</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/base.css" type="text/css">
<link rel="stylesheet" href="css/messages.css" type="text/css"><script language="javascript" src="menu/sniffer.js" type="text/javascript">

//Top Navigational Bar III v3.4.1.1b (By BrotherCake @ [email]cake@brothercake.net[/email])
//Permission granted/modified by Dynamicdrive.com to include script in archive
//For this and 100's more DHTML scripts, visit [url]http://www.dynamicdrive.com/[/url]
//This notice MUST stay intact for legal use

</script>
<script language="javascript1.2" src="menu/custom.js" type="text/javascript"></script>
<script language="javascript1.2" src="menu/style.js" type="text/javascript"></script>
<script language="javasscript" type="text/javascript">
function Terms(){
	window.open("terms.php","",'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=400');
}
function Help(){
	window.open("help.php","",'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=400');
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<script language="javascript" type="text/javascript">
function noAccess(){
	alert("Du har inte tillåtelse att utföra denna åtgärd");
	return false;
}
</script>
<div id="Layer1" style="position:absolute; left:314px; top:25px; width:468px; height:60px; z-index:1">
<a href="links.php?out=1" target="_blank"><img src="./img/commerce/pleistoscene01.gif" width="468" height="60" border="0" alt="Pleistoscene"></a>
</div>
<table width="800" cellspacing="0" cellpadding="0" border="0">
<tr><td colspan="3" class="tdContact" align="right">
- - <a href="http://www.marilynmanson.se/test/" class="linkPlain">[url]www.marilynmanson.se/test/[/url]</a> - - || contact: <a href="mailto:info@marilynmanson.se" class="linkPlain">info@marilynmanson.se</a>&nbsp;
</td></tr>
<tr><td colspan="3" class="tdTop">
&nbsp;
</td></tr>
<tr><td colspan="3" class="tdMenu" valign="bottom">
<div id="menu2Layer" style="position:absolute; left:5px; top:96px; width:270px; height:11px; z-index:1"><a href="javascript:Help();"><img src="img/menuHelp.gif" alt="Hj&auml;lp" border="0" width="50" height="14"></a> <a href="javascript:Terms();"><img src="img/menuTerms.gif" alt="Anv&auml;ndarvillkor" border="0" width="130" height="14"></a></div>
</td></tr>
<tr><td class="tdLeft" align="center" valign="top">
<p>&nbsp;</p>
	<form action="actions/logout.php" method="post" name="userlogout">
	<table class="tableLogin" cellpadding="0" cellspacing="0" width="180">
<tr>
<td align="center"><img src="img/loggedInHeader.gif" width="180" height="20" alt="Inloggad"></td>
</tr>
<tr>
<td align="center">
<p><br>
<a href="?loc=messages"><img src="img/usermenu/messagesNoNew.gif" width="180" height="20" border="0" alt="Du har inga nya meddelanden"></a><br>
<a href="?loc=private&action=info"><img src="img/usermenu/personalInfo.gif" width="180" height="19" border="0" alt="Dina personliga uppgifter"></a><br>
<a href="?loc=private&action=settings"><img src="img/usermenu/settings.gif" width="180" height="19" border="0" alt="Dina inst&auml;llningar"></a><br>
&nbsp;<br>
<input type="image" src="img/usermenu/logout.gif" alt="Logga ut">
</p>
<p>&nbsp;</p>
</td>
</tr>
</table>
<input type="hidden" name="logout">
</form>
<br>
<img src="img/leftHeaderMembers.gif" width="190" height="40" alt="Medlemmar">
<table border="0" cellspacing="0" cellpadding="0" class="tableLeft">
<tr><td align="right">
<p><b>Antal medlemmar:</b> 3</p>
<p><b>Nyaste medlem:</b><br>
<a href="?loc=members&vid=4" class="linkThin" onmouseover="this.className='linkThinUnder';" onmouseout="this.className='linkThin';">mourningstar</a> (A28)<br>
Registrerad:<br>
<i>03-11-06</i></p>
<p><b>F&ouml;delsedagar:</b><br>
<i>Inga medlemmar fyller &aring;r</i><p><a href="?loc=members" class="linkBold">Se alla medlemmar</a></p>
</td></tr>
</table>
<br>
<img src="img/leftHeaderOnline.gif" width="190" height="40" alt="Online">
<table border="0" cellspacing="0" cellpadding="0" class="tableLeft">
<tr><td align="right">		<a href="?loc=members&vid=1" class="linkBold" onmouseover="this.className='linkBoldUnder';" onmouseout="this.className='linkBold';">Webslave</a></a> (K23)<br>
		</td></tr>
<tr><td align="right"> <br>
	Totalt &auml;r <b>1</b> medlemmar online
</td></tr>
</table>
<br>
<img src="img/leftHeaderVote.gif" width="190" height="40" alt="R&ouml;stning">
<form name="vote" action="actions/vote.php" method="POST" onsubmit="return checkVote(this);">
<table border="0" cellspacing="0" cellpadding="0" class="tableLeft">
<tr><td>
		<script language="JavaScript" type="text/javascript">
		function checkVote(obj){
			for(var n=0;n<obj.voteId.length;n++){
				if(obj[n].checked){
					return true;
				}
			}
			alert("Du måste välja ett svarsalternativ");
			return false;
		}
		</script>
		<span class="headerSmall">Tyck till om uppdateringen</span><br>Nu så har MarilynManson.se äntligen blivit upplagd och den stora fråga lyder... vad tycker du???<br><hr size="1px" noshade width="100%">
	<table width="100%" border="0" cellpadding="0" cellspacing="0" class="text">
	<tr><td valign="top">
Grymt bra... väldigt nöjd
<br>&nbsp;
</td><td valign="top" align="right" width="30">
75%
</td></tr><tr><td valign="top">
Helt ok, klar förbättring
<br>&nbsp;
</td><td valign="top" align="right" width="30">
25%
</td></tr><tr><td valign="top">
Ingen skillnad
<br>&nbsp;
</td><td valign="top" align="right" width="30">
0%
</td></tr><tr><td valign="top">
Något sämre än den förra
<br>&nbsp;
</td><td valign="top" align="right" width="30">
0%
</td></tr><tr><td valign="top">
Helt värdelös
<br>&nbsp;
</td><td valign="top" align="right" width="30">
0%
</td></tr>	</table>
			<hr size="1" width="100%" noshade>
		<div align="right">
		Totalt antal r&ouml;ster: 4		</div>
		</td></tr>
</table>
</form>
<p>&nbsp;</p>
</td><td class="tdMain" valign="top">
<p>&nbsp;</p>
<div align="center">

<----- Meddelande delen ------>

<script type="text/javscript" language="javascript">
var bCheckad=false
function checkDelete(){
	for(i=0;i<document.messagesDelete.elements.length;i++){
		var chBox=document.messagesDelete.elements[i]
			if(chBox.checked){
				bCheckad=true;
      	break;
      }
    }
  if(!bCheckad){
		alert("Du måste välja inlägg att ta bort")
  }
	else{
		bCheckad=confirm("Är du säker på att du vill ta bort markerade inlägg?")
 }
	return bCheckad;
}
function checkall(){
	for(var n=0;n<document.messagesDelete.elements.length;n++){
		if(document.messagesDelete.elements[n].type=="checkbox" && document.messagesDelete.elements[n].name.indexOf(messToDelete)==0){
			document.messagesDelete.elements[n].checked=true;
		}
	}
	var checkedAll = 1;
}
function uncheckall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=false;
		}
	}
	var checkedAll = 0;
}
</script>
<form action="actions/users/messagesDelete.php" name="messagesDelete" method="POST" onsubmit="return checkDelete();">
<table width="560" border="0" cellspacing="4" cellpadding="2">
<tr><td colspan="5" class="inboxTop">
&nbsp;Du har 2 meddelanden, 1 nytt <span class="text">(4% utrymme anv&auml;nt)</span>
</td></tr>
<tr><td align="center" class="inboxMark">
<a href="javascript:checkall();"><img src="img/checkAll.gif" width="15" height="15" alt="Markera/avmarkera" border="0"></a>
</td><td align="center" class="inboxImg">
&nbsp;
</td><td class="inboxSubject">
&nbsp;&Auml;mne:
</td><td align="center" class="inboxDate">
Skickat:
</td><td class="inboxFrom" align="center">
Fr&aring;n:
</td></tr>
		<tr><td align="center" class="inboxRow1">
		<input type="checkbox" name="messToDelete[]" value="2">
		</td><td align="center" class="inboxRow1">
					<img src="img/messUnread.gif" width="20" height="15" alt="Meddelandet &auml;r inte l&auml;st">
					</td><td class="inboxRow1">
		<a href="?loc=messages&action=read&mess=2" class="linkBold">Inget igen</a>
		</td><td align="center" class="inboxRow1">
		03-11-08 10:40		</td><td class="inboxRow1" align="center">
		<a href="?loc=members&vid=4" class="linkThin" onmouseover="this.className='linkThinUnder';" onmouseout="this.className='linkThin';">mourningstar</a>
		</td></tr>
				<tr><td align="center" class="inboxRow2">
		<input type="checkbox" name="messToDelete[]" value="1">
		</td><td align="center" class="inboxRow2">
					<img src="img/messRead.gif" width="20" height="16" alt="Meddelandet &auml;r l&auml;st">
					</td><td class="inboxRow2">
		<a href="?loc=messages&action=read&mess=1" class="linkThin">Inget riktigt mess</a>
		</td><td align="center" class="inboxRow2">
		03-11-07 23:56		</td><td class="inboxRow2" align="center">
		<a href="?loc=members&vid=3" class="linkThin" onmouseover="this.className='linkThinUnder';" onmouseout="this.className='linkThin';">eden_eye</a>
		</td></tr>
			<tr><td colspan="5" align="right">
	<input type="image" src="img/buttonMessagesDeleteSelected.gif" alt="Radera markerade meddelanden">
	</td></tr>
	</table>
</form>
</div>

<----- Meddelande delen ------>

<p>&nbsp;</p>
</td></tr>
<tr><td colspan="3" class="tdCopy" align="right">
Site design and programming by <a href="http://www.marilynmanson.se/design" class="linkPlain" target="_blank">SlaveProductions&nbsp;</a>
</td></tr>
</table>
<script language="javascript1.2" src="menu/menu.js" type="text/javascript"></script>
</body>
</html>
JojoxxMedlem sedan juni 20004 308 inlägg
#10

Obs att det fattades ett "a" i type="text/javascript". (+ lite modifiering)

<script type="text/javascript" language="javascript">
var bCheckad=false
function checkDelete(){
	for(i=0;i<document.messagesDelete.elements["messToDelete[]"].length;i++){
		var chBox=document.messagesDelete.elements["messToDelete[]"][i]
		if(chBox.checked){
			bCheckad=true;
		}
    }
  if(!bCheckad){
		alert("Du måste välja inlägg att ta bort")
  }
	else{
		bCheckad=confirm("Är du säker på att du vill ta bort markerade inlägg?")
 }
	return bCheckad;
}
function checkall(){
	for(var n=0;n<document.messagesDelete.elements.length;n++){
		if(document.messagesDelete.elements[n].type=="checkbox" && document.messagesDelete.elements[n].name.indexOf("messToDelete")==0){
			document.messagesDelete.elements[n].checked=true;
		}
	}
	var checkedAll = 1;
}
function uncheckall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=false;
		}
	}
	var checkedAll = 0;
}
</script>
WebslaveMedlem sedan maj 2002647 inlägg
#11

Att det kan bli så pinsamt... hehehehehehe. Men JÄTTETACK Jojjox ;)

WebslaveMedlem sedan maj 2002647 inlägg
#12

Fast... om jag bara har ett meddelande så vill den inte känna av att jag har markerat det... fast om jag har flera och endast markerar en så går det bra... skumt

JojoxxMedlem sedan juni 20004 308 inlägg
#13

Dubbelkolla namnen på checkboxarna. Testar jag din kodsnutt med min modifiering så fungerar det.

WebslaveMedlem sedan maj 2002647 inlägg
#14

Kk... ska se efter. Men jag använder den senaste "verren"

WebslaveMedlem sedan maj 2002647 inlägg
#15

De heter likadant, messToDelete[], spelar ingen roll om det är ett eller fyra... samma namn men olika värden. Jag har haft ett sånt här script förut och det funkade... men det tappade jag som valigt bort.

JojoxxMedlem sedan juni 20004 308 inlägg
#16

Använder du verkligen modifieringen då? Här har jag lagt upp sidan. Fungerar den för dig?

WebslaveMedlem sedan maj 2002647 inlägg
#17

Jupp... så funkar den för mig med men om det bara är ett meddelande kvar så känner den inte av om det är markerat

JojoxxMedlem sedan juni 20004 308 inlägg
#18

Ok. Nu ser jag felet :)

<script type="text/javascript" language="javascript">
function checkDelete(){
	var bCheckad=false
	if(!document.messagesDelete.elements["messToDelete[]"].length){
		bCheckad=document.messagesDelete.elements["messToDelete[]"].checked;
	} else {
	for(i=0;i<document.messagesDelete.elements["messToDelete[]"].length;i++){
		var chBox=document.messagesDelete.elements["messToDelete[]"][i]
		if(chBox.checked){
			bCheckad=true;
		}
	  }
	}
  if(!bCheckad){
		alert("Du måste välja inlägg att ta bort")
  }
	else{
		bCheckad=confirm("Är du säker på att du vill ta bort markerade inlägg?")
 }
	return bCheckad;
}
function checkall(){
	for(var n=0;n<document.messagesDelete.elements.length;n++){
		if(document.messagesDelete.elements[n].type=="checkbox" && document.messagesDelete.elements[n].name.indexOf("messToDelete")==0){
			document.messagesDelete.elements[n].checked=true;
		}
	}
	var checkedAll = 1;
}
function uncheckall(formobj,namestart){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="checkbox" && formobj[n].name.indexOf(namestart)==0){
			formobj[n].checked=false;
		}
	}
	var checkedAll = 0;
}
</script>
WebslaveMedlem sedan maj 2002647 inlägg
#19

Puss puss ;)

Nu när du ändå är här (om du inte har hunnit smita) om jag vill använda "checkedAll" som du hittar i koden för att avgöra om en knapp/bild ska markera/avmarkera hur gör jag då?

JojoxxMedlem sedan juni 20004 308 inlägg
#20

Hur skall den fungera? Om inte alla är markerade så skall alla markeras, och om alla är markeras skall samtliga avmarkeras?

152 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
145 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)