Hi, I need someone to write some code that doesn't let the form submit unless it a certain word in the text box. Here is the code. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <p> <textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" class="posting-textarea"></textarea> </p> <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" /> </body> </html> Code (markup):
Hi first of all you are missing the <form> tag. What you are trying to do is called validation. Here's a way to do it <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <script> function validateMyForm(){ //this will be executed when the form tries to submit var messageCtl = document.getElementById("message"); if (messageCtl.value.indexOf("[]")>=0){ return true;//allows the form to submit }else{ alert("form values are not valid"); return false;//prevents the form from submitting } } </script> </head> <body> <form action="[page where you want the form to submit]" method="[GET or POST]" onsubmit="javascript:validateMyForm();"> <p> <textarea id="message" name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" class="posting-textarea"></textarea> </p> <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" /> </form> </body> </html> let me know if it worked, John
why would it be password protection? I think it's plain and simple form validation that he wants... killer, respond man!
Because he says he wants the form only to work if a user enters a certain word. Not if the user enters a value within ranges or a valid email address or .... There IS a way to protect pages using JS but it needs about 20K of code. You can find it if you search G@@gle hard enuff.
inegoita, when the pop up box saying "form values are not vaild" I don't want the form to be submited (don't load the next page). Thanks
I dont think that a bot would care about JavaScript validation. So I suggest you do some serverside validation as probably the bot submits directly not through the form.
Hi sorry, think I made a minor mistake just make the following modification <form action="[page where you want the form to submit]" method="[GET or POST]" onsubmit="javascript:return validateMyForm();"> returning false for onsubmit should prevent the form from posting let me know if it worked. kindest regards, John
You need to know something. Auto posters do not even load the page. They deal direct with the script and not the webpage. Javascript measures will NOT stop an auto poster from submitting the form! You need something like: http://www.webmaster-a.com/check-is-human-with-no-captcha.php
Could you maybe put it into this code? It's for PHPBB3. <!-- IF S_PRIVMSGS --> <!-- INCLUDE ucp_header.html --> <!-- ELSE --> <!-- INCLUDE overall_header.html --> <!-- ENDIF --> <!-- IF S_FORUM_RULES --> <div class="forumrules"> <!-- IF U_FORUM_RULES --> <h3>{L_FORUM_RULES}</h3><br /> <a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a> <!-- ELSE --> <h3>{L_FORUM_RULES}</h3><br /> {FORUM_RULES} <!-- ENDIF --> </div> <br clear="all" /> <!-- ENDIF --> <!-- IF not S_PRIVMSGS --> <div id="pageheader"> <h2><!-- IF TOPIC_TITLE --><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a><!-- ELSE --><a class="titles" href="{U_VIEW_FORUM}">{FORUM_NAME}</a><!-- ENDIF --></h2> <!-- IF MODERATORS --> <p class="moderators">{L_MODERATORS}: {MODERATORS}</p> <!-- ENDIF --> <!-- IF U_MCP --> <p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p> <!-- ENDIF --> </div> <br clear="all" /><br /> <!-- ENDIF --> <!-- IF not S_SHOW_PM_BOX --> <form action="{S_POST_ACTION}" method="post" name="postform"{S_FORM_ENCTYPE}> <!-- ENDIF --> <!-- IF S_DRAFT_LOADED --> {$CA_BLOCK_START} {$CA_CAP2_START}{L_INFORMATION}{$CA_CAP2_END} <table class="tablebg" width="100%" cellspacing="{$CA_SPACING}"> <tr> <td class="row1" align="center"><span class="gen"><!-- IF S_PRIVMSGS -->{L_DRAFT_LOADED_PM}<!-- ELSE -->{L_DRAFT_LOADED}<!-- ENDIF --></span></td> </tr> </table> {$CA_BLOCK_END} <br clear="all" /> <!-- ENDIF --> <!-- IF S_SHOW_DRAFTS --> {$CA_BLOCK_START} {$CA_CAP2_START}{L_LOAD_DRAFT}{$CA_CAP2_END} <table class="tablebg" width="100%" cellspacing="{$CA_SPACING}"> <tr> <td class="row1" colspan="3" align="center"><span class="gen">{L_LOAD_DRAFT_EXPLAIN}</span></td> </tr> <tr> <th>{L_SAVE_DATE}</th> <th>{L_DRAFT_TITLE}</th> <th>{L_OPTIONS}</th> </tr> <!-- BEGIN draftrow --> <!-- IF draftrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF --> <td class="postdetails row" style="padding: 4px;">{draftrow.DATE}</td> <td class="row" style="padding: 4px;"><b class="gen">{draftrow.DRAFT_SUBJECT}</b> <!-- IF draftrow.S_LINK_TOPIC --><br /><span class="gensmall">{L_TOPIC}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span> <!-- ELSEIF draftrow.S_LINK_FORUM --><br /><span class="gensmall">{L_FORUM}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span> <!-- ELSEIF draftrow.S_LINK_PM --><br /><span class="gensmall">{L_PRIVATE_MESSAGE}</span> <!-- ELSE --><br /><span class="gensmall">{L_NO_TOPIC_FORUM}</span><!-- ENDIF --> </td> <td class="row" style="padding: 4px;" align="center"><span class="gen"><a href="{draftrow.U_INSERT}">{L_LOAD_DRAFT}</a></span></td> </tr> <!-- END draftrow --> </table> {$CA_BLOCK_END} <br clear="all" /> <!-- ENDIF --> <!-- IF S_POST_REVIEW --><!-- INCLUDE posting_review.html --><!-- ENDIF --> <!-- IF S_DISPLAY_PREVIEW --><!-- INCLUDE posting_preview.html --><!-- ENDIF --> <!-- IF not S_PRIVMSGS and S_UNGLOBALISE --> {$CA_BLOCK_START} {$CA_CAP2_START}{L_MOVE}{$CA_CAP2_END} <table class="tablebg" width="100%" cellspacing="{$CA_SPACING}"> <tr> <td class="spacer" colspan="2"><img src="images/spacer.gif" alt="" width="1" height="1" /></td> </tr> <tr> <td class="row2" align="center"><span class="gen">{L_UNGLOBALISE_EXPLAIN}<br /><br />{L_SELECT_DESTINATION_FORUM} </span><select name="to_forum_id">{S_FORUM_SELECT}</select><br /><br /><input class="btnmain" type="submit" name="post" value="{L_CONFIRM}" /> <input class="btnlite" type="submit" name="cancel_unglobalise" value="{L_CANCEL}" /></td> </tr> </table> {$CA_BLOCK_END} <br clear="all" /> <!-- ENDIF --> {$CA_BLOCK_START} {$CA_CAP2_START}{L_POST_A}{$CA_CAP2_END} <table class="tablebg" width="100%" cellspacing="{$CA_SPACING}"> <!-- IF ERROR --> <tr> <td class="row2" colspan="2" align="center"><span class="genmed error">{ERROR}</span></td> </tr> <!-- ENDIF --> <!-- IF S_DELETE_ALLOWED --> <tr> <td class="row1"><b class="genmed">{L_DELETE_POST}:</b></td> <td class="row2"><input type="checkbox" class="radio" name="delete" /> <span class="gensmall">[ {L_DELETE_POST_WARN} ]</span></td> </tr> <!-- ENDIF --> <!-- IF S_SHOW_TOPIC_ICONS or S_SHOW_PM_ICONS --> <tr> <td class="row1"><b class="genmed">{L_ICON}:</b></td> <td class="row2"> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><label><input type="radio" class="radio" name="icon" value="0"{S_NO_ICON_CHECKED} /><span class="genmed"><!-- IF S_SHOW_TOPIC_ICONS -->{L_NO_TOPIC_ICON}<!-- ELSE -->{L_NO_PM_ICON}<!-- ENDIF --></span></label> <!-- BEGIN topic_icon --><label><input type="radio" class="radio" name="icon" value="{topic_icon.ICON_ID}"{topic_icon.S_ICON_CHECKED} /><img src="{topic_icon.ICON_IMG}" width="{topic_icon.ICON_WIDTH}" height="{topic_icon.ICON_HEIGHT}" alt="" title="" hspace="2" vspace="2" /></label> <!-- END topic_icon --></td> </tr> </table> </td> </tr> <!-- ENDIF --> <!-- IF not S_PRIVMSGS and S_DISPLAY_USERNAME --> <tr> <td class="row1"><b class="genmed">{L_USERNAME}:</b></td> <td class="row2"><input class="post" type="text" tabindex="1" name="username" size="25" value="{USERNAME}" /></td> </tr> <!-- ENDIF --> <!-- IF S_PRIVMSGS --> <tr> <td class="row1"><b class="genmed">{L_TO}:</b></td> <td class="row2"> {S_HIDDEN_ADDRESS_FIELD} <!-- BEGIN to_recipient --> <span style="display: block; float: {S_CONTENT_FLOW_BEGIN};" class="nowrap genmed"><strong> <!-- IF to_recipient.IS_GROUP --><a href="{to_recipient.U_VIEW}"><span class="sep">{to_recipient.NAME}</span></a><!-- ELSE -->{to_recipient.NAME_FULL}<!-- ENDIF --></strong> <!-- IF not S_EDIT_POST --><input class="post" type="submit" name="remove_{to_recipient.TYPE}[{to_recipient.UG_ID}]" value="{L_REMOVE}" /> <!-- ENDIF --> </span> <!-- BEGINELSE --> <span class="genmed">{L_NO_TO_RECIPIENT}</span> <!-- END to_recipient --> </td> </tr> <!-- IF S_ALLOW_MASS_PM --> <tr> <td class="row1"><b class="genmed">{L_BCC}:</b></td> <td class="row2"> <!-- BEGIN bcc_recipient --> <span class="genmed nowrap"><strong> <!-- IF bcc_recipient.IS_GROUP --><a href="{bcc_recipient.U_VIEW}"><span class="sep">{bcc_recipient.NAME}</span></a><!-- ELSE -->{bcc_recipient.NAME_FULL}<!-- ENDIF --></strong> <!-- IF not S_EDIT_POST --><input class="post" type="submit" name="remove_{bcc_recipient.TYPE}[{bcc_recipient.UG_ID}]" value="{L_REMOVE}" /> <!-- ENDIF --> </span> <!-- BEGINELSE --> <span class="genmed">{L_NO_BCC_RECIPIENT}</span> <!-- END bcc_recipient --> </td> </tr> <!-- ENDIF --> <!-- ENDIF --> <tr> <td class="row1" width="22%"><b class="genmed">{L_SUBJECT}:</b></td> <td class="row2" width="78%"><input class="post" style="width:550px" type="text" name="subject" id="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->74<!-- ELSE -->74<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" /></td> </tr> <tr> <td class="row1" valign="top"><b class="genmed">{L_MESSAGE_BODY}:</b><br /><span class="gensmall">{L_MESSAGE_BODY_EXPLAIN} </span><br /><br /> <!-- IF S_SMILIES_ALLOWED --> <table width="100%" cellspacing="5" cellpadding="0" border="0" align="center"> <tr> <td class="gensmall" align="center"><b>{L_SMILIES}</b></td> </tr> <tr> <td align="center"> <!-- BEGIN smiley --> <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;" style="line-height: 20px;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <!-- END smiley --> </td> </tr> <!-- IF S_SHOW_SMILEY_LINK --> <tr> <td align="center"><a class="nav" href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a></td> </tr> <!-- ENDIF --> </table> <!-- ENDIF --> </td> <td class="row2" valign="top"> <script type="text/javascript"> // <![CDATA[ var form_name = 'postform'; var text_name = 'message'; // ]]> </script> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <!-- INCLUDE posting_buttons.html --> <tr> <td valign="top" style="width: 100%;"><textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" class="posting-textarea">{MESSAGE}</textarea></td> <!-- IF S_BBCODE_ALLOWED --> <td width="80" align="center" valign="top"> <script type="text/javascript"> // <![CDATA[ colorPalette('v', 7, 6) // ]]> </script> </td> <!-- ENDIF --> </tr> </table> </td> </tr> <!-- IF S_INLINE_ATTACHMENT_OPTIONS --> <tr> <td class="row1"><b class="genmed">{L_ATTACHMENTS}:</b></td> <td class="row2"><select name="attachments">{S_INLINE_ATTACHMENT_OPTIONS}</select> <input type="button" class="btnbbcode" accesskey="a" value="{L_PLACE_INLINE}" name="attachinline" onclick="attach_form = document.forms[form_name].elements['attachments']; attach_inline(attach_form.value, attach_form.options[attach_form.selectedIndex].text);" onmouseover="helpline('a')" onmouseout="helpline('tip')" /> </td> </tr> <!-- ENDIF --> <tr> <td class="row1" valign="top"><b class="genmed">{L_OPTIONS}:</b><br /> <table cellspacing="2" cellpadding="0" border="0"> <tr> <td class="gensmall">{BBCODE_STATUS}</td> </tr> <!-- IF S_BBCODE_ALLOWED --> <tr> <td class="gensmall">{IMG_STATUS}</td> </tr> <tr> <td class="gensmall">{FLASH_STATUS}</td> </tr> <tr> <td class="gensmall">{URL_STATUS}</td> </tr> <tr> <td class="gensmall">{SMILIES_STATUS}</td> </tr> <!-- ENDIF --> </table> </td> <td class="row2"> <table cellpadding="1"> <!-- IF S_BBCODE_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /></td> <td class="gen">{L_DISABLE_BBCODE}</td> </tr> <!-- ENDIF --> <!-- IF S_SMILIES_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="disable_smilies"{S_SMILIES_CHECKED} /></td> <td class="gen">{L_DISABLE_SMILIES}</td> </tr> <!-- ENDIF --> <!-- IF S_LINKS_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /></td> <td class="gen">{L_DISABLE_MAGIC_URL}</td> </tr> <!-- ENDIF --> <!-- IF S_SIG_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="attach_sig"{S_SIGNATURE_CHECKED} /></td> <td class="gen">{L_ATTACH_SIG}</td> </tr> <!-- ENDIF --> <!-- IF S_NOTIFY_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="notify"{S_NOTIFY_CHECKED} /></td> <td class="gen">{L_NOTIFY_REPLY}</td> </tr> <!-- ENDIF --> <!-- IF not S_PRIVMSGS --> <!-- IF S_LOCK_TOPIC_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="lock_topic"{S_LOCK_TOPIC_CHECKED} /></td> <td class="gen">{L_LOCK_TOPIC}</td> </tr> <!-- ENDIF --> <!-- IF S_LOCK_POST_ALLOWED --> <tr> <td><input type="checkbox" class="radio" name="lock_post"{S_LOCK_POST_CHECKED} /></td> <td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td> </tr> <!-- ENDIF --> <!-- IF S_TYPE_TOGGLE --> <tr> <td> </td> <td class="gen"><!-- IF S_EDIT_POST -->{L_CHANGE_TOPIC_TO}<!-- ELSE -->{L_POST_TOPIC_AS}<!-- ENDIF -->: <!-- BEGIN topic_type --><input type="radio" class="radio" name="topic_type" value="{topic_type.VALUE}"{topic_type.S_CHECKED} />{topic_type.L_TOPIC_TYPE} <!-- END topic_type --></td> </tr> <!-- ENDIF --> <!-- ENDIF --> </table> </td> </tr> <!-- IF S_TOPIC_TYPE_ANNOUNCE or S_TOPIC_TYPE_STICKY --> <tr> <td class="row1"><b class="genmed">{L_STICK_TOPIC_FOR}:</b><br /><span class="gensmall">{L_STICKY_ANNOUNCE_TIME_LIMIT}</span></td> <td class="row2"><input class="post" type="text" name="topic_time_limit" size="3" maxlength="3" value="{TOPIC_TIME_LIMIT}" /> <b class="gen">{L_DAYS}</b> <span class="gensmall">{L_STICK_TOPIC_FOR_EXPLAIN}</span></td> </tr> <!-- ENDIF --> <!-- IF S_EDIT_REASON --> <tr> <td class="row1" valign="top"><b class="genmed">{L_EDIT_REASON}:</b></td> <td class="row2"><input class="post" type="text" name="edit_reason" size="50" value="{EDIT_REASON}" /></td> </tr> <!-- ENDIF --> <!-- IF S_CONFIRM_CODE --> <tr> <th colspan="2" valign="middle">{L_POST_CONFIRMATION}</th> </tr> <tr> <td class="row3" colspan="2"><span class="gensmall">{L_POST_CONFIRM_EXPLAIN}</span></td> </tr> <tr> <td class="row1" colspan="2" align="center"> <input type="hidden" name="confirm_id" value="{CONFIRM_ID}" /> {CONFIRM_IMAGE} </td> </tr> <tr> <td class="row1"><b class="genmed">{L_CONFIRM_CODE}: </b><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td> <td class="row2"><input class="post" type="text" name="confirm_code" size="8" maxlength="8" /></td> </tr> <!-- ENDIF --> <!-- INCLUDE prime_subject_check.html --> <!-- IF S_SHOW_ATTACH_BOX or S_SHOW_POLL_BOX --> <tr> <td class="cat" colspan="2" align="center"> <input class="btnlite" type="submit" tabindex="5" name="preview" value="{L_PREVIEW}" /> <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" /> <!-- IF S_SAVE_ALLOWED --> <input class="btnlite" type="submit" accesskey="k" tabindex="7" name="save" value="{L_SAVE}" /><!-- ENDIF --> <!-- IF S_HAS_DRAFTS --> <input class="btnlite" type="submit" accesskey="d" tabindex="8" name="load" value="{L_LOAD}" /><!-- ENDIF --> <input class="btnlite" type="submit" accesskey="c" tabindex="9" name="cancel" value="{L_CANCEL}" /> </td> </tr> <!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF --> <!-- IF S_SHOW_POLL_BOX --> <!-- INCLUDE posting_poll_body.html --> <!-- ELSEIF S_POLL_DELETE --> <tr> <td class="row1"><span class="genmed"><b>{L_POLL_DELETE}:</b></span></td> <td class="row2"><input type="checkbox" class="radio" name="poll_delete" /></td> </tr> <!-- ENDIF --> <!-- ENDIF --> <tr> <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS} <input class="btnlite" type="submit" tabindex="10" name="preview" value="{L_PREVIEW}" /> <input class="btnmain" type="submit" accesskey="s" tabindex="11" name="post" value="{L_SUBMIT}" /> <!-- IF not S_SHOW_ATTACH_BOX and not S_SHOW_POLL_BOX --> <!-- IF S_SAVE_ALLOWED --> <input class="btnlite" type="submit" accesskey="k" tabindex="12" name="save" value="{L_SAVE}" /><!-- ENDIF --> <!-- IF S_HAS_DRAFTS --> <input class="btnlite" type="submit" accesskey="d" tabindex="13" name="load" value="{L_LOAD}" /><!-- ENDIF --> <!-- ENDIF --> <input class="btnlite" type="submit" accesskey="c" tabindex="14" name="cancel" value="{L_CANCEL}" /> </td> </tr> </table> {$CA_BLOCK_END} <!-- IF not S_PRIVMSGS --> {S_FORM_TOKEN} </form> <!-- ENDIF --> <br clear="all" /> <!-- IF S_DISPLAY_REVIEW --><!-- INCLUDE posting_topic_review.html --><!-- ENDIF --> <!-- IF S_DISPLAY_HISTORY --><!-- INCLUDE ucp_pm_history.html --><!-- ENDIF --> <!-- IF S_PRIVMSGS --> <!-- INCLUDE ucp_footer.html --> <!-- ELSE --> <!-- INCLUDE breadcrumbs.html --> <!-- IF S_DISPLAY_ONLINE_LIST --> <br clear="all" /> <table class="tablebg" width="100%" cellspacing="{$CA_SPACING}"> <tr> <td class="cat"><h4>{L_WHO_IS_ONLINE}</h4></td> </tr> <tr> <td class="row1"><span class="gensmall">{LOGGED_IN_USER_LIST}</span></td> </tr> </table> <!-- ENDIF --> <br clear="all" /> <table width="100%" cellspacing="1"> <tr> <td align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></td> </tr> </table> <!-- INCLUDE overall_footer.html --> <!-- ENDIF --> Code (markup):