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;
}
}
}
знаю функция жеская но она работает... Подскажите в чем просчет уже момозГ сломал |
Цитата:
|
ну который в голове =) уже вместо мозга стал момозГом :-D
|
Цитата:
|
Попробуйте
<INPUT type="submit" value="Начать поиск" onclick="poisk(example);"> |
и че это такое?... мне не кнопку надо сделать... она у меня уже есть... мне надо что написал я слово в поиске нажал энтер и начался поиск
|
хелп....
|
Боже! Что вообще делает этот безумно обфусциорванный кусок кода?
|
Цитата:
|
Цитата:
давайте представим, что в этой функции будет элементарно написано
function poisk(example) {
alert ('РАБОТАЕТ МАЗА ФАК');
}
|
Поставлю вопрос иначе. При нажатии энтер в форме тебя автоматически перебрасывает на, например,
http://javascript.ru?example=input.value input.value это у нас то что написано в <INPUT type="text"> как сделать так, что бы она не переходила на эту страницу, а вообще игнорировала нажатие энтер в форме? |
все покорил наконец то надо было просто добавить после функции return false
<FORM name="myForm" onSubmit="poisk(example); return false"> |
возник другой вопрос я добавил еще один <INPUT type="text"> и у меня перестала запускаться функция по нажатию на энтер...
Или функция может срабатывать только когда в форме один инпут? |
Эээ, чувак. Щас объясню что именно ты делаешь не совсем так.
Итак, у нас тут форма поиска по тэгам аниме-сайта. 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, время: 04:24. |