Great!quote:Op woensdag 30 april 2008 23:35 schreef SuperRembo het volgende:
S-je vergeten, 't moet document.forms[0] zijn.
1 2 3 4 5 6 7 8 9 10 | { if( parseInt(this.value)!=''){ document.forms[0].elements['price'].value = '€ ' + parseInt(this.value) * 79 + ',00' } else { document.forms[0].elements['price'].value = '€ 0,00' } } |
1 |
1 2 3 4 5 6 7 8 9 | { var quantity = parseInt(quantityField.value); if (isNaN(quantity)) quantity = 0; var price = quantity * 79; document.forms[0].elements['price'].value = '¤ ' + price + ',00' } |
hulde!quote:Op donderdag 1 mei 2008 10:57 schreef SuperRembo het volgende:
Dat komt doordat in de functie de betekenis van "this" is veranderd. In de onclick attribuut verwijst "this" naar het element waar de onclick attribuut bij hoort. In jouw functie verwijst "this" naar het object waar de functie bij hoort (waarschijnlijk "window").
[ code verwijderd ]
[ code verwijderd ]
Dat iets niet lukt is inderdaad een bekend probleem.quote:Op vrijdag 2 mei 2008 16:50 schreef Ewaldus het volgende:
[...] het niet lukt. Is dit een bekend probleem[...]
Ben wel benieuwd hoe je het dan gedaan hebt?quote:Op zondag 4 mei 2008 21:27 schreef BugWorks het volgende:
Ik ben bezig met het maken van een invoer formulier (in dit geval voor een poll, bevat invoervelden voor een vraag en 10 antwoord opties). Standaard wil ik het invoerveld voor de vraag/stelling en 2 antwoord opties weergeven, de rest wordt pas zichtbaar als er in het voorgaan antwoordveld getyped wordt.
Dit bovenstaande lukt allemaal. Echter moet ik voor elk invoerveld vooraf aanmaken en aangeven dat hij verborgen moet blijven tot dit veranderd.
Is er niet een manier om dit middels javascript automatisch te laten gebeuren, zeg maar dat een div en invoerveld (<div><input ...></div>) automatisch aangemaakt wordt middels een script. Ik heb al verschillende keren hierop proberen te zoeken maar het lukt me niet om wat te vinden dat lijkt te werken.
Hier is een voorbeeld van hoe ik bovenstaande bedoel: Klik
paginabron bevat alles
Edit
Oplossing is eigenlijk niet meer nodig, heb het al opgelost door het met php te doen.
Om die invoervelden te automatisch aan te laten maken (optie 3 en meer) heb ik het volgende gebruikt:quote:Op maandag 5 mei 2008 00:58 schreef Flaccid het volgende:
[..]
Ben wel benieuwd hoe je het dan gedaan hebt?
1 2 3 4 5 6 7 8 9 10 11 | $max = 10; for($i=3;$i<=$max;$i++) { echo '<tr>'; echo '<td>'; echo '<div id="po'.$i.'" style="display:none">Optie'.$i.': <input id="ipo'.$i.'" type="text" name="pollOption" onkeydown="showNext('.$i.')" onkeyup="emptyCheck('.$i.')" /></div>'; echo '</td>'; echo '</tr>'; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <script language="JavaScript"> function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) if ((version >= 5.5) && (document.body.filters)) { for(var i=0; i<document.images.length; i++) { var img = document.images[i] var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { var imgID = (img.id) ? "id='" + img.id + "' " : "" var imgClass = (img.className) ? "class='" + img.className + "' " : "" var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " var imgStyle = "display:inline-block;" + img.style.cssText if (img.align == "left") imgStyle = "float:left;" + imgStyle if (img.align == "right") imgStyle = "float:right;" + imgStyle if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" img.outerHTML = strNewHTML i = i-1 } } } } window.attachEvent("onload", correctPNG); </script> <![endif]--> |
Maar je zet er dus gewoon 10 in je bron. Als je nu 11 antwoorden heb?quote:Op maandag 5 mei 2008 17:04 schreef BugWorks het volgende:
[..]
Om die invoervelden te automatisch aan te laten maken (optie 3 en meer) heb ik het volgende gebruikt:
[ code verwijderd ]
Dit is overigens niet te zien in de broncode van de link die ik eerder meegaf.
1 2 3 4 | var titel = d.title.value; afkort = "string 1" + titel + "string 2"; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var AfkortingDialog = { init : function() { var f = document.forms[0]; // Get the selected contents as text and place it in the input f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); }, insert : function() { var d = document.forms[0]; var titel = d.title.value; //tags erbij zetten afkort = "<acronym title="+ titel +">"+tinyMCEPopup.editor.selection.getContent({format : 'text'})+"</acronym>"; // tags met input weer terugsturen tinyMCEPopup.editor.execCommand('mceInsertContent', false, afkort); tinyMCEPopup.close(); } }; tinyMCEPopup.onInit.add(AfkortingDialog.init, AfkortingDialog); |
1 |
1 |
Spammailtje:quote:emails:
Naam: JJasperO
Emailadres: email@adres.nl
Tekstveld: En wat tekst.
co202206-a.almel1.ov.home.nl
Opera/9.26 (Windows NT 6.0; U; nl)
Javascript:quote:crawl-66-249-72-9.googlebot.com
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!-- function MM_validateForm() { //v4.0 if (document.getElementById){ var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' dient een correct e-mailadres te bevatten.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' dient te worden ingevuld.\n'; } } if (errors) alert('Het contactformulier is niet correct ingevuld:\n'+errors); document.MM_returnValue = (errors == ''); } } //--> </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // Configuration Settings if ($_POST['emails'] == '') { $SendFrom = "Geinteresseerde <info@buitendedoos.nl>"; $SendTo = "info@buitendedoos.nl"; $SubjectLine = "Reactie via creabee.nl"; $ThanksURL = "uwberichtisverzonden.html"; //confirmation page // Build Message Body from Web Form Input foreach ($_POST as $Field=>$Value) $MsgBody .= "$Field: $Value\n"; $MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" . $_SERVER["HTTP_USER_AGENT"]; $MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe // Send E-Mail and Direct Browser to Confirmation Page mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom"); header("Location: $ThanksURL"); } else { header("Location: http://www.google.com/"); } ?> |
1 2 3 4 | margin-left: -5000px; position: absolute; } |
als je wil dat google daar niet meer komt moet je ff een rel="nofollow" in je link naar 'contact' zettenquote:Op donderdag 12 juni 2008 11:29 schreef JJasperO het volgende:
Ik maak gebruik van een contactformulier met CSS om een invulveld onzichtbaar voor gebruikers te maken. Dit invulveld moet leeg blijven, anders word je geredirect naar een andere website. De zichtbare velden moeten worden ingevuld, daarvoor maak ik gebruik van Javascript.
Het vreemde echter is dat ik nu na een paar dagen al om de dag toch een spam-mailtje ontvang, waarbij helemaal niks is ingevuld! Is javascript met een normale submitknop soms niet voldoende om een bot te dwingen velden in te vullen?
Vb zoals het zou moeten zijn:
[..]
Spammailtje:
[..]
Javascript:
[ code verwijderd ]
PHP
[ code verwijderd ]
CSS
[ code verwijderd ]
Ok de handeling is duidelijk, dank. Begrijp ik uit je reactie ook goed dat het hier niet zozeer gaat om spam, maar een zgn crawler? Ander voorbeeldje van een binnengekomen mail:quote:Op donderdag 12 juni 2008 11:42 schreef PiRANiA het volgende:
[..]
als je wil dat google daar niet meer komt moet je ff een rel="nofollow" in je link naar 'contact' zetten
<a href="Contact/contact.html">CONTACT</a>
\/
<a href="Contact/contact.html" rel="nofollow">CONTACT</a>
Een crawler is toch juist nuttig om op je website te krijgen voor indexering. Alleen vreemd dat deze dan gebruik maakt van het contactformulier dat klaarblijkelijk toch 'lek' is omdat er iets kan worden verstuurd zonder dat de invulvelden zijn ingevuld (met javascript afgedwongen).quote:llf520125.crawl.yahoo.net
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
Ja, met PHP doen dus.quote:Op donderdag 12 juni 2008 12:16 schreef JJasperO het volgende:
Maar ik maak geen gebruik van javascript om te beveiligen. Ik gebruik CSS en PHP. Javascript is er alleen om er zeker van te zijn dat bezoekers alle velden invullen.
En juist dat is je fout; niet alleen op Javascript rekenen om te kijken welke velden er allemaal ingevuld zijn, ook in PHP doen!quote:Op donderdag 12 juni 2008 12:16 schreef JJasperO het volgende:
Maar ik maak geen gebruik van javascript om te beveiligen. Ik gebruik CSS en PHP. Javascript is er alleen om er zeker van te zijn dat bezoekers alle velden invullen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |