Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическая ссылка (https://javascript.ru/forum/dom-window/46720-dinamicheskaya-ssylka.html)

Demonuka 21.04.2014 11:33

Динамическая ссылка
 
В общем есть форма. Она генерируется из PHP. На форме есть input text
<input id ="add4" name="add4" type="text" maxlength="2" style="width:30px" value="">

И есть ссылка
<a href="mainmenu.php?add=3&gr=1">Погнали!</a>

Вопрос: как при изменении текстового поля add4 или при клике на ссылку , изменить в ссылке в адресе параметр add co значения "3" на то, что введено в текстовое поле?

krasovsky 21.04.2014 12:12

При текущих условиях:
$('a').click(function(){
this.href = "mainmenu.php?add="+$('#add4')[0].value+"&gr=1"
});

Demonuka 21.04.2014 12:39

Сделал вот так:
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
function vasya(){this.href = "mainmenu.php?add="+$('#add4')[0].value+"&gr=1"}; 
</script>
</head>
<body>
<input id ="add4" name="add4" type="text" maxlength="2" style="width:30px" value=""> 
<a href="mainmenu.php?add=3&gr=1" onClick="vasya()">Погнали!</a> 
</body>
</HTML>

Но оно не работает..( Что не так?

Sweet 21.04.2014 12:44

Demonuka, this - не ссылка, а глобальный объект. Как вариант, сделать так:
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">// LANGUAGE="JavaScript", блеать!!!
function vasya(a){a.href = "mainmenu.php?add="+$('#add4')[0].value+"&gr=1"}; 
</script>
</head>
<body>
<input id ="add4" name="add4" type="text" maxlength="2" style="width:30px" value=""> 
<a href="mainmenu.php?add=3&gr=1" onClick="vasya(this)">Погнали!</a> 
</body>
</HTML>

Sweet 21.04.2014 12:52

P.S. Только работать не будет, потому что переменная $ - не объявлена как функция. И атрубит LANGUAGE не поможет. Попробуй комментарий:
<SCRIPT LANGUAGE="JavaScript"><!--
// 2014 год на дворе, блеать! Какой, нахер, LANGUAGE="JavaScript"!
//--></script>

А если серьёзно, подключи jQuery, и пиши как белый человек jQuery-программист:
<HTML>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
$(function () {
  $("a").on("click", function () {
    $(this).attr("href", "mainmenu.php?add=" + $('#add4').val() + "&gr=1");
  });
});
</script>
</head>
<body>
<input id ="add4" name="add4" type="text" maxlength="2" style="width:30px" value=""> 
<a href="mainmenu.php?add=3&gr=1">Погнали!</a> 
</body>
</HTML

Demonuka 21.04.2014 12:55

Спасибо! Так работает! )

Vlasenko Fedor 21.04.2014 18:01

Без jQuery
<HTML>
  <head></head>
  <body>
    <input id="add4" name="add4" type="text" maxlength="2" style="width:30px" value="">
    <a href="mainmenu.php?add=3&gr=1">Погнали!</a>
    <script>
      var inp = document.getElementById("add4");
      var links = document.getElementsByTagName("a"); //document.links
      links[0].onclick = function () {
        this.href = "mainmenu.php?gr=1&add=" + inp.value;
      }
    </script>
  </body>
</HTML>


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