Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавить текст из поля input к ссылке и отправить по ней пользователя КНОПКОЙ (https://javascript.ru/forum/misc/74118-dobavit-tekst-iz-polya-input-k-ssylke-i-otpravit-po-nejj-polzovatelya-knopkojj.html)

Аганин 14.06.2018 18:37

Добавить текст из поля input к ссылке и отправить по ней пользователя КНОПКОЙ
 
В этой теме спрошено и отвечено то, что мне нужно, кроме одного:
необходимо, чтобы текст был в виде кнопки, работающей в том числе по нажатию Enter. Спасибо

j0hnik 14.06.2018 19:03

<a href="http://yandex.ru/yandsearch?text=" id="link" style="border: 1px solid gray;">Ссылка хз куда</a>
<input type="text" oninput="update_href('link', this.value );" size=30>

	<script>

function update_href(id,value){
document.getElementById(id).href='http://yandex.ru/yandsearch?text='+value;
}

onkeydown = function(e){
	if(e.code == "Enter") document.getElementById('link').click();
};
</script>



<button id="btn">Ссылка хз куда</button>
<input type="text" id="inp">

	<script>
var btn = document.getElementById('btn');
btn.onclick = e => location = 'http://yandex.ru/yandsearch?text='+document.getElementById('inp').value;
window.onkeydown = function(e){
	if(e.code == "Enter") btn.click();
};
	</script>


или так

Аганин 14.06.2018 19:22

первое не работает
Видать, что-то не так: кнопка не появилась, да и <script> не закрыт
проверяю второе

upd второе тоже нет

Жаль(

j0hnik 14.06.2018 19:29

Аганин,
скорее всего браузер блокирует, создайте старницу, запустите локально

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

<button id="btn">Ссылка хз куда</button>
<input type="text" id="inp">

	<script>
var btn = document.getElementById('btn');
btn.onclick = e => location = 'http://yandex.ru/yandsearch?text='+document.getElementById('inp').value;
window.onkeydown = function(e){
	if(e.code == "Enter") btn.click();
};
	</script>
</body>
</html>

j0hnik 14.06.2018 19:53

https://nvdx.ru/test.html

Аганин 15.06.2018 10:38

Цитата:

Сообщение от j0hnik (Сообщение 487390)
Аганин,
скорее всего браузер блокирует, создайте старницу, запустите локально

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

<button id="btn">Ссылка хз куда</button>
<input type="text" id="inp">

	<script>
var btn = document.getElementById('btn');
btn.onclick = e => location = 'http://yandex.ru/yandsearch?text='+document.getElementById('inp').value;
window.onkeydown = function(e){
	if(e.code == "Enter") btn.click();
};
	</script>
</body>
</html>

Спасибо, но

Tor: всё работает
Chrome, Firefox, Яндекс.Браузер: не работает enter
IE 11, Safari Mobile: ничего не работает (ни enter, ни клик)

пробовал разные коды

j0hnik 15.06.2018 13:59

Chrome, Firefox, Яндекс.Браузер: у меня работает

Аганин 15.06.2018 15:31

Цитата:

Сообщение от j0hnik (Сообщение 487459)
Chrome, Firefox, Яндекс.Браузер: у меня работает

Есть какие-то идеи, почему у меня – нет?

Аганин 18.06.2018 10:13

Может кто-то написать, не работает только у меня или не только?

Manyasha 18.06.2018 11:05

В IE ругается на
btn.onclick = e =>
и в IE и Edge вместо e.code нужен e.key:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
 
<button id="btn">Ссылка хз куда</button>
<input type="text" id="inp">
 
    <script>
var btn = document.getElementById('btn');
btn.onclick = function(e){
	location = 'http://yandex.ru/yandsearch?text='+document.getElementById('inp').value;
}
window.onkeydown = function(e){
    if(e.code == "Enter" || e.key == "Enter") btn.click();
};
    </script>
</body>
</html>


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