Подскажите кто понимает в javascript. Почему скрипт перестает работать внутри формы? <html> <head>...</head> <body> <form enctype="multipart/form-data" action="qwert.php" method="post" target="_blank" name="form1"> <form name="form" onsubmit="return false;"> <input name="newwindow" onclick="if(!this.checked) document.getElementById('pictogramm').checked=false;" type="checkbox"><font color='810000' size='1' face='tahoma'> Открывать в новом окне</font><br> <input name="noindex" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <noindex></font><br> <input name="nofollow" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <nofollow></font><br> <table><tr><td> <input name="url" type="text" size="30" value="Введите адрес сайта" /></td></tr><tr><td> <input name="txt" type="text" size="30" value="Введите текст ссылки" /></td></tr><tr><td> <input name="title" type="text" size="35" /></td></tr><tr><td> <input Value='Создать ссылку' type="submit" onclick='cr();' /></td></tr><tr><td> <div style='text-align:center;font-size:130%;border:solid 1pt;border-color:blue;padding:3pt;'><span id="linkview"><a href="http://htmlweb.ru/" target="_blank" title="всплывающая подсказка">мой сайт<img src="strelka.gif" border="0" height="15" width="5"></a></span></div> </td></tr><tr><td> Код вашей ссылки: <textarea id="codebox" rows="6" cols="30"></textarea> </td></tr><tr><td></td></tr></table></form> </form> </body> </html> А если убрать первую форму, то скрипт выполняется. ТОесть когда нажимаю на сабмит в скрипте, то браузер почему-то отправляет меня на страницу qwert.php. Но эта страница прописана для формы внешней, у которой своя кнопка сабмит.
да спасибо, просто так у меня и получается( но я заменил кнопка в скрипте на ссылку, которая так же достает функцию и исполняет <a href="javascript:%20x()" onclick="cr();"/>ghgfh</a>
Блин, неа, не работает с ссылкой, а скрипт мне приходится размещать внутри формы. Блин может кто подскажет, как мне скрипт переделать так чтобы у него формы не стало...
По клику на кнопке типа submit у тебя просто отправляется форма. Что там делает скрипт, не понятно. И ты не увидишь, что он делает, т.к. страница перезагружается. Если хочешь сделать какие-то манипуляции с формой перед отправкой, то напиши в теге формы обработчик onsubmit Код (Text): <form onsubmit="cr()" action=....> Если хочешь, чтобы форма не отправлялась, то Код (Text): <form onsubmit='cr();return false;' action=....> Если хочешь отправить какую-то форму (у которой id='myForm') по клику на ссылке, то Код (Text): <a href="#" onclick="document.getElementById('myForm').submit()"> А лучше подробней опиши, какой именно функциональности добиваешься
функция скрипт находит по name="form", как мне можно сохранить этот идентификатор, и при этом убрать из скрипта форму?
<html> <head> <script type="text/javascript"> function cr(){ url=document.form.url.value; if(url==''||url=='http://'){alert("Укажите адрес сайта!");document.form.url.focus();return;} if(document.form.txt.value==''){alert("Укажите текст ссылки!");document.form.txt.focus();return;} if (url.indexOf(' ') >= 0||url.indexOf('.')<0) {alert("Укажите корректный URL!");document.form.url.focus();return false;} if (url.slice(0,7)!='http://')url='http://'+url; document.form.url.value=url; str='<a href="'+url+'"'; if(document.form.newwindow.checked==1)str+=' target="_blank"'; if(document.form.title.value!='')str+=' title="'+document.form.title.value+'"'; str+='>'+document.form.txt.value; str+='</a>'; if(document.form.noindex.checked==1)str='<noindex>'+str+'</noindex>'; if(document.form.nofollow.checked==1)str='<nofollow>'+str+'</nofollow>'; document.getElementById('linkview').innerHTML=str; document.form.codebox.value=str; } </script> </head> <body> <form enctype="multipart/form-data" action="qwert.php" method="post" target="_blank" name="form1"> <form name="form" onsubmit="return false;"> <input name="newwindow" onclick="if(!this.checked) document.getElementById('pictogramm').checked=false;" type="checkbox"><font color='810000' size='1' face='tahoma'> Открывать в новом окне</font><br> <input name="noindex" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <noindex></font><br> <input name="nofollow" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <nofollow></font><br> <table><tr><td> <input name="url" type="text" size="30" value="Введите адрес сайта" /></td></tr><tr><td> <input name="txt" type="text" size="30" value="Введите текст ссылки" /></td></tr><tr><td> <input name="title" type="text" size="35" /></td></tr><tr><td> <input Value='Создать ссылку' type="submit" onclick='cr();' /></td></tr><tr><td> <div style='text-align:center;font-size:130%;border:solid 1pt;border-color:blue;padding:3pt;'><span id="linkview"><a href="http://htmlweb.ru/" target="_blank" title="всплывающая подсказка">мой сайт<img src="strelka.gif" border="0" height="15" width="5"></a></span></div> </td></tr><tr><td> Код вашей ссылки: <textarea id="codebox" rows="6" cols="30"></textarea> </td></tr><tr><td></td></tr></table></form> </form> </body> </html> Вот я скинул полный скрипт вместе с функцией в <head>. Можно вставить в html страничку - должна заработать. Этот скрипт генерирует ссылку. И он будет находится внутри формы. Задача самого скрипта ничего никуда не отправлять, а просто собрать код ссылки и вывести его в спец поле. Тоесть чтобы он работал точно так же как он работает когда не окружен еще одной <форм>
<form enctype="multipart/form-data" action="qwert.php" method="post" target="_blank" name="form1"> </form> Чтобы скрипт работал внутри этой формы нужно точно так же, как равботает когда не находится в ней
Тут много переделывать нужно. Пока сделал, чтобы хоть url вставлялся в новое поле. Сейчас с чекбоксами вожусь. Вообще не понятно, что значит снести форму? И кто "он", который должен остаться рабочим, скрипт?
Теперь ссылка формируется, ничего не отправляется. Html не трогал, кроме первой формы, закомментировал её. Думаю, дальше разберешься. Код (Text): <html> <head> <script type="text/javascript"> function cr(){ var frm=document.getElementById("myform"); var url=frm.url.value; var txt=frm.txt.value; if(url==''||url=='http://'||url=='Введите адрес сайта'){alert("Укажите адрес сайта!");frm.url.focus();return false;} if(txt==''||txt=='Введите текст ссылки'){alert("Укажите текст ссылки!");frm.txt.focus();return false;} if(url.indexOf(' ') >= 0||url.indexOf('.')<0) {alert("Укажите корректный URL!");frm.url.focus();return false;} if(url.slice(0,7)!='http://')url='http://'+url; frm.url.value=url; var str='<a href="'+url+'"'; if(frm.newwindow.checked==1)str+=' target="_blank"'; if(frm.title.value!='')str+=' title="'+frm.title.value+'"'; str+='>'+frm.txt.value; str+='</a>'; if(frm.noindex.checked==1)str='<noindex>'+str+'</noindex>'; if(frm.nofollow.checked==1)str='<nofollow>'+str+'</nofollow>'; document.getElementById('linkview').innerHTML=str; frm.codebox.value=str; return false; } </script> </head> <body> <!--form enctype="multipart/form-data" action="qwert.php" method="post" target="_blank" name="form1"--> <!--/form--> <form name="form" id="myform" onsubmit="return false;"> <input name="newwindow" onclick="if(!this.checked) document.getElementById('pictogramm').checked=false;" type="checkbox"><font color='810000' size='1' face='tahoma'> Открывать в новом окне</font><br> <input name="noindex" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <noindex></font><br> <input name="nofollow" type="checkbox"><font color='810000' size='1' face='tahoma'> Окружить тегом <nofollow></font><br> <table><tr><td> <input name="url" type="text" size="30" value="Введите адрес сайта" /></td></tr><tr><td> <input name="txt" type="text" size="30" value="Введите текст ссылки" /></td></tr><tr><td> <input name="title" type="text" size="35" /></td></tr><tr><td> <input Value='Создать ссылку' type="button" onclick='return cr()' /></td></tr><tr><td> <div style='text-align:center;font-size:130%;border:solid 1pt;border-color:blue;padding:3pt;'><span id="linkview"><a href="http://htmlweb.ru/" target="_blank" title="всплывающая подсказка">мой сайт<img src="strelka.gif" border="0" height="15" width="5"></a></span></div> </td></tr><tr><td> Код вашей ссылки: <textarea id="codebox" rows="6" cols="30"></textarea> </td></tr><tr><td></td></tr></table> </form> </body> </html>