Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Срабатывание кнопки или поля по Enter (https://javascript.ru/forum/misc/65064-srabatyvanie-knopki-ili-polya-po-enter.html)

jonsinat2 23.09.2016 02:21

Срабатывание кнопки или поля по Enter
 
Вообщем есть код:
<input type="text" id="txt">
<input type="button" id="btn" value="Кнопка">
<script>
function someFunc(){
document.location.href = (document.getElementById("txt").value);
}
document.getElementById("btn").onclick = someFunc;
</script>

нужно что бы после ввода в поле был можно было наживать кнопку ентером, либо вообще убрать кнопку и оставить поле что бы по нажатию ентер выполняло все остальное.
Спасибо :3

laimas 23.09.2016 02:27

А смысл в этом скрипте? Достаточно обычной формы отправляемой методом GET по отправке которой введенный url указывать action формы. А input типа submit отправит форму и по нажатию Enter.

jonsinat2 23.09.2016 02:34

подскажи как это сделать ибо я 0 в js :)

laimas 23.09.2016 02:42

function located(f) {
    if(!f.txt.value) { //Хотя нужна еще проверка на ввод пустых значений
        alert("Нет ввода");    
        return false
    }
    f.action = f.txt.value
}


<form onsubmit="return located(this)">
<input type="text" name="txt">
<input type="submit" value="Go">
</form>


А нет, не то. Нужно же просто сделать переход по введенному url? Значит надо еще удалять поле ввода. А если с кнопкой вне формы, то нужна обработка нажатия клавиши Enter, но только тогда когда фокус имеет поле ввода.

jonsinat2 23.09.2016 02:54

нужно что бы в поле ввести например "&privet87566" и это значение добавилось к ссылке на которой сейчас скрипт и сделало переход по ссылке.
Т.Е получается: http://javascript.ru/forum/showthrea...61&privet87566

laimas 23.09.2016 03:02

Ну значит нужна просто форма без всяких преобразований и скриптов вообще не нужно. Если у формы action не задан, то он будет равен текущему url, а введенное значение в поле при отправке формы и будет подставлено к этому url под ключом равным имени поля ввода.

<form>
<input type="text" name="txt">
<input type="submit" value="Go">
</form>


Это все что требуется. Если текущий url не имеет параметров запроса то введенное будет подставлено не через &, а через ?, что для принимающей стороны значения не имеет.

laimas 23.09.2016 03:10

Или "privet87566", это не значение, а ключ?

jonsinat2 23.09.2016 03:16

Цитата:

Сообщение от laimas (Сообщение 429567)
Ну значит нужна просто форма без всяких преобразований и скриптов вообще не нужно. Если у формы action не задан, то он будет равен текущему url, а введенное значение в поле при отправке формы и будет подставлено к этому url под ключом равным имени поля ввода.

<form>
<input type="text" name="txt">
<input type="submit" value="Go">
</form>


Это все что требуется. Если текущий url не имеет параметров запроса то введенное будет подставлено не через &, а через ?, что для принимающей стороны значения не имеет.

Спасибо большое) просто и то что нужно) только вот когда ввожу в поле и жму то в уре пишется ?txt={text} а можно сделать как то что бы просто добавлялось без ?txt= . Если нет то ничего, так думаю сойдет)

laimas 23.09.2016 03:24

Цитата:

Сообщение от jonsinat2
а можно сделать как то что бы просто добавлялось без ?txt=

GET параметры в запросе начинаются после ?, а если параметров несколько, то они разделяются между собой &.
Каждый параметр запроса, это пара - ключ=>значение. При отправке формы ключом будет являться имя поля, а значением его значение.
Сервер обычно ожидает известные ему имена ключей, на основе которых он и принимает решения. Если введенное "privet87566" передавать как ключ, а не значение, то данный ключ должен быть известен серверу. А если известен, то значит имя поля должно быть равно "privet87566", тогда под этим ключом сервер будет принимать значения введенное в поле.
Если же в поле можно ввести все что угодно и при этом подставлять в url как имя ключа, то есть имя ключа будет постоянно изменяться, то каким образом сервер будет идентифицировать параметры запроса? Или же что там пришло от клиента не имеет значения, главное чтобы ключ был, а какой не важно?

jonsinat2 23.09.2016 04:19

все, все очень хорошо работает, спасибо тебе добрый человек) очень благодарен :):thanks:

Тему можно закрывать :)


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