Изяждане на последната буква?

streleca_stz

Registered
Здравейте!
Вчера ми помогнаха седна търсачка, която използва javascript, за да пренасочва така, както аз пожелая, но има един проблем - изяжда последната буква от написаният стринг О,О
Код:
<input id='search' value="3" onkeypress="$('#submit').attr('loc', $(this).val());"/>
<button  id='submit'  loc='#' onclick="document.location='site.com/video-search/'+$(this).attr('loc');">
Първият път като пробваш няма проблеми, но след това започва да изяжда последната буква и не ще да се оправи :shock:
 
Защото трябва да напишеш onkeyup, а не onkeypress.
Даже се чудя защо първия път се получава.

onkeypress означава, че действието трябва да се случи докато е натиснат клавиша, а това от своя страна значи, че като добавяш стойност, последната буква не сякаш изчезва, защото скриптът я отчита като въведена чак когато вдигнеш клавиша на клавиатурата.

onkeyup означава, че действието трябва да се случи когато се вдигне клавиша - тогава буквата/цифрата вече е въведена и ти спокойно можеш да търсиш заедно с последната буква :)
 
anonimen каза:
Защото трябва да напишеш onkeyup, а не onkeypress.
Даже се чудя защо първия път се получава.

onkeypress означава, че действието трябва да се случи докато е натиснат клавиша, а това от своя страна значи, че като добавяш стойност, последната буква не сякаш изчезва, защото скриптът я отчита като въведена чак когато вдигнеш клавиша на клавиатурата.

onkeyup означава, че действието трябва да се случи когато се вдигне клавиша - тогава буквата/цифрата вече е въведена и ти спокойно можеш да търсиш заедно с последната буква :)
Ахх, много благодаря!! Честно казано не знаех разликата, но аз като цяло не съм никак на ти с javascript (този откъс ми беше предоставен от съфорумник) :)
А случайно да има възможност да се направи при натискането на Enter да се "изпраща" заявката, освен само с бутона "Изпрати/Търси"?
 
Би трябвало ако имаш формуляр (и <input type="submit" />, естествено) браузърът автоматично да изпраща данните с натискането на enter. Само че сега като гледам, ти нямаш затварящ таг след тага <button>. Аз използвам
HTML:
<button name="submit" value="submit"><b>Напред!</b></button>
и с натискане на enter формулярите ми се изпращат. Само че трябва при обработката да знаеш, че се изпраща $_POST['submit'] = submit, а не $_POST['submit'] = <b>Напред</b> (в случая), тоест трябва да имаш и value=submit, например.
Виж тук - има повече обяснения и съвети при използването на тага button вместо input. (като това да пишеш button type=button)
 
anonimen каза:
Би трябвало ако имаш формуляр (и <input type="submit" />, естествено) браузърът автоматично да изпраща данните с натискането на enter. Само че сега като гледам, ти нямаш затварящ таг след тага <button>. Аз използвам
HTML:
<button name="submit" value="submit"><b>Напред!</b></button>
и с натискане на enter формулярите ми се изпращат. Само че трябва при обработката да знаеш, че се изпраща $_POST['submit'] = submit, а не $_POST['submit'] = <b>Напред</b> (в случая), тоест трябва да имаш и value=submit, например.
Виж тук - има повече обяснения и съвети при използването на тага button вместо input. (като това да пишеш button type=button)
Да, бутона го затварям, просто дадох целият пример, който ми дадоха от форума.
Както и не мога да използвам формуляр, защото трябва да използвам get, а то не иска правилно да преправя линка и става голяма каша, иначе ако ставаше нямаше да ползвам javascript :/
 
Добре де, защо тогава не направиш следното:

Вариант 1
tyrsene.php - тук ти е формата за търсене, с метод post (подчертавам, формуляра) после взима post данните и пренасочва към site.com/video-search/$_POST['q']

И в крайна сметка получаваш tyrsene.php, където при натискане на enter търсенето се изпраща, само че хем имаш формуляр, хем нямаш get, но получаваш това, което искаш - пренасочване към site.com/video-search/търсене

Значи правиш така(в tyrsene.php:):
PHP:
if(isset($_POST['q'])){
$q = $_POST['q'];
...
header('Location: site.com/video-search/'.$q);
}
else {
?>
<form action="redirect.php" method="post" >
<input type="text" name="q" />
<input type="submit" />
</form>
<?php
}
video-search/ - това вече си го имаш

Вариант 2
Претърсваш google за js, с който при натискането на определен клавиш се изпълнява определена функция.
 

Back
Горе