Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   form + enter + function (https://javascript.ru/forum/css-html/8174-form-enter-function.html)

Basonsan 12.03.2010 10:02

form + enter + function
 
Есть такая форма.....


<FORM name="myForm" onSubmit="poisk(example);">
 
 <INPUT type="text" style="width: 259px" id="example" name="example" value="Начните вводить тег" onfocus="this.style.backgroundColor='#F0F0F0';this.value='';" onblur="this.style.backgroundColor='#FFFFFF';if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#F0F0F0';};} else this.value='Начните вводить тег';">
<BR><br>
<INPUT type="button" value="Начать поиск" onclick="poisk(example);" ;="">

Вопрос я хочю что бы при нажатие на энтер у меня выполнялась функция
poisk(example); если я нажимаю кнопку Начать поиск она работает а при нажатие на энтер она не хочет работать почему то
вот сама функция

function poisk(example) {

var m_jak1 = example.value;
if (m_jak1=='Начните вводить тег') 
{alert('Не указан тег');}
else{
m_jak1=m_jak1.toLowerCase();
m_jak=m_jak1.split(',');
var mas_post=new Array();
var m_teg=new Array(); 

for (i=0; i<m_jak.length; i++)
	{ 
	if (m_jak[i].indexOf(' ')!=-1)
	{
											var m_teg1=new Array();
											m_teg1=m_jak[i].split(' ');
											var m_x=new Array();
											for (ii=0; ii<=kol_post; ii++)
													{	m_x[ii]=0; }
											for (ij=0; ij<m_teg1.length; ij++)
												{
													
													for (ii=0; ii<=kol_post; ii++)
													{
													
													m_teg=teg[ii].split(',');
													for (iii=0; iii<m_teg.length; iii++)
														{
															if (m_teg1[ij]==m_teg[iii])
																{ m_x[ii]=m_x[ii]+1; }
														}
														
													}
												}
												for (ii=0; ii<=kol_post; ii++)
												{
												if (m_x[ii]==m_teg1.length)
															{
															y=0;
															for (j=0; j<mas_post.length; j++)
																{ 
																	if (mas_post[j]==ii)
																	{ y=y+1; }
																}
															if (y==0)
																{
																mas_post.push(ii);
																}
															}
												}
	}
	else
	{
											
		
		
		
												
											
											
											
											
											
											
											
											
											
	for (ii=0; ii<=kol_post; ii++)
		{ 
		m_teg=teg[ii].split(',');
		for (iii=0; iii<m_teg.length; iii++)
			{
			if (m_jak[i]==m_teg[iii])
				{
			y=0;
			for (j=0; j<mas_post.length; j++)
					{ if (mas_post[j]==ii)
						{ y=y+1; }
					}
				if (y==0)
					{
			mas_post.push(ii);
				
					}
				}
			}
		}
	}
	}
	var m=new Array();
for (j=0; j<mas_post.length; j++)
{
	m[j]=mas_post[j];
	mas_post[j]=perevod(m[j]);
}


for (j=0; j<mas_post.length; j++)
{	
	for (i=0; i<mas_post.length-1; i++)
	{
		if (mas_post[i]>mas_post[i+1])
		{
		b=mas_post[i];
		mas_post[i]=mas_post[i+1];
		mas_post[i+1]=b;
		}
	}
	
}
 val=mas_post.join(",");
	if (mas_post.length==0)
	{alert('такого тега(тегов) нет'); return false;}
	else {
 
window.location.href="http://aniland.3dn.ru/index/0-27?1,"+val;
return true;
 }
 }
 }

знаю функция жеская но она работает... Подскажите в чем просчет уже момозГ сломал

Shaci 12.03.2010 11:54

Цитата:

Сообщение от Basonsan (Сообщение 47482)
Подскажите в чем просчет уже момозГ сломал

А што это за орган такой, момозг?? :blink:

Basonsan 12.03.2010 12:33

ну который в голове =) уже вместо мозга стал момозГом :-D

Shaci 12.03.2010 12:38

Цитата:

Сообщение от Basonsan (Сообщение 47497)
ну который в голове =) уже вместо мозга стал момозГом :-D

Что-то мне подсказывает, что сия трансформация не к добру ))).

subzey 12.03.2010 16:19

Попробуйте
<INPUT type="submit" value="Начать поиск" onclick="poisk(example);">

Basonsan 15.03.2010 17:28

и че это такое?... мне не кнопку надо сделать... она у меня уже есть... мне надо что написал я слово в поиске нажал энтер и начался поиск

Basonsan 17.03.2010 14:54

хелп....

ixth 20.03.2010 17:26

Боже! Что вообще делает этот безумно обфусциорванный кусок кода?

chu4___x 20.03.2010 23:40

Цитата:

Сообщение от ixth (Сообщение 48390)
Боже! Что вообще делает этот безумно обфусциорванный кусок кода?

Это матрица, сынок...

Basonsan 21.03.2010 18:18

Цитата:

Сообщение от ixth (Сообщение 48390)
Боже! Что вообще делает этот безумно обфусциорванный кусок кода?

Ты меня просто убил........ Я под сталом :haha: :haha: :haha: :haha: :haha: :haha: :haha:



давайте представим, что в этой функции будет элементарно написано

function poisk(example) {
alert ('РАБОТАЕТ МАЗА ФАК');
}

Basonsan 22.03.2010 09:48

Поставлю вопрос иначе. При нажатии энтер в форме тебя автоматически перебрасывает на, например,
http://javascript.ru?example=input.value

input.value это у нас то что написано в <INPUT type="text">
как сделать так, что бы она не переходила на эту страницу, а вообще игнорировала нажатие энтер в форме?

Basonsan 22.03.2010 10:01

все покорил наконец то надо было просто добавить после функции return false

<FORM name="myForm" onSubmit="poisk(example); return false">

Basonsan 26.03.2010 23:02

возник другой вопрос я добавил еще один <INPUT type="text"> и у меня перестала запускаться функция по нажатию на энтер...
Или функция может срабатывать только когда в форме один инпут?

ixth 27.03.2010 13:24

Эээ, чувак. Щас объясню что именно ты делаешь не совсем так.
Итак, у нас тут форма поиска по тэгам аниме-сайта. js делает что-то страшное с тем, что вводит пользователь (кажется, ищет дубли тэгов или что-то в этом роде). Затем ты делаешь перенаправление при помощи location.href. Это не очень правильно. Почему? Да, потому что форма сама это может. Если ты хочешь, чтобы форма переходила по ссылке http://javascript.ru/?example=input.value, тебе надо сделать как-то так:

<form action="http://javascript.ru/" method="get" onsubmit="prepareForm(this)">
     <!-- value подставлен для наглядности -->
     <input type="text" name="example" value="input.value" />
     <input type="submit" value="Поиск"/>
</form>


Вооот. Таким образом перед отправкой формы у тебя будет срабатывать ф-ция prepareForm, которая будет как-то изменять поля формы. Это раз.

Два. Почему форма не шлется по энтеру? Все очень просто: у тебя нет кнопки submit. Без нее форма по энтеру шлется только если в ней одно текстовое поле. Добавь кнопку. Можно даже спрятать ее при помощи display: none; Все должно будет работать.


Часовой пояс GMT +3, время: 22:53.