Переход при нажатии на checkbox

X
На сайте с 04.12.2018
Offline
280
2151

Помогите, пожалуйста, с чекбоксами.

Есть задача при нажатии на чекбокс переходить на разные страницы.

Есть решение через onclick="location.href , но оно грубовато :(

Дело в том, что все юрл, на которые требуется совершить переход, отличаются лишь окончанием.

<input type="checkbox" value = "slon"> слон
<input type="checkbox" value = "belka"> белка
<input type="checkbox" value = "belka/alleana"> белка породы "Аллеана"

и переход нужно, соответственно совершить при нажатии на

соответственно

Помогите найти решение.

Спасибо!

Удобный съем позиций (http://allpositions.ru/redirect/58277)
dmitcat
На сайте с 26.05.2005
Offline
123
#1

Тогда jquery в помощь...

<input class="url_go" type="checkbox" value = "slon"> слон

<input class="url_go" type="checkbox" value = "belka"> белка

<input class="url_go" type="checkbox" value = "belka/alleana"> белка породы "Аллеана"

<script>

$(document).ready(function(){

$(".url_go").on("click", function(){

var url_part=$(this).val();

document.location.href="www.site.ru/animals/"+url_part+".htm";

});

});

</script>

Либо селяВи (http://www.puper.ru), либо селяВас (http://www.puper.ru)!!!
X
На сайте с 04.12.2018
Offline
280
#2

Не переходит:(

H
На сайте с 21.08.2004
Offline
122
#3

window.location.href

Есть что-то, что мы не знаем, но узнать это мы не можем.
ArbNet
На сайте с 27.10.2019
Offline
126
#4


по мне тут лучше использовать radio<br>
<input name=animals1 type=radio onclick="location.href='http://www.site.ru/animals/slon.htm'"> слон
<input name=animals1 type=radio onclick="location.href='http://www.site.ru/animals/belka.htm'"> белка
<input name=animals1 type=radio onclick="location.href='http://www.site.ru/animals/belka/alleana.htm'"> белка породы "Аллеана"
<br><br><hr>если такой вариант не нравится то<br>
<script>
function Go(lnk){
location.href='http://www.site.ru/animals/'+lnk+'.htm';
}
</script>
<input name=animals2 type=radio onchange="Go('slon')"> слон
<input name=animals2 type=radio onchange="Go('belka')"> белка
<input name=animals2 type=radio onchange="Go('belka/alleana')"> белка породы "Аллеана"
<br><br><hr>или<br>
<script>
function Send(lnk){
var form=document.getElementById('form-animals');
form.action='http://www.site.ru/animals/'+lnk+'.htm';
form.submit();
}
</script>
<form id=form-animals method=post>
<input type=radio onchange="Send('slon')"> слон
<input type=radio onchange="Send('belka')"> белка
<input type=radio onchange="Send('belka/alleana')"> белка породы "Аллеана"
</form>
Обсуждение разработки на моём фреймворке https://discord.gg/23N4s9x2kp
S3
На сайте с 29.03.2012
Offline
307
#5

ArbNet, Меня бы в компании, где можно филонить за такой код бы просто убили! Что за хардкод???

ArbNet:
<input name=animals2 type=radio onchange="Go('slon')"> слон
Samail
На сайте с 10.05.2007
Offline
362
#6
Xubart:
Есть задача при нажатии на чекбокс переходить на разные страницы.

$('input[type="checkbox"]').change(function(){

window.location.href='http://www.site.ru/animals/'+$(this).val()+'.htm';
});
S
На сайте с 13.10.2014
Offline
171
#7

ArbNet, старайтесь так никогда не делать иначе потом задолбаетесь что-то добавлять или убирать в случае необходимости.

самый оптимальный результат, это повесить обработчик с учетом дерева

$('body form').on('change', 'input[name="animals2"]', function(){ /*code here*/ });

такая конструкция позволяет перехватывать даже динамически-создаваемые элементы

а дальше параметры задавать или через value или на худой конец через data-аттрибут.

---------- Добавлено 05.02.2020 в 14:48 ----------

зы.

и еще... не надо говнокода. убирайте значения аттрибутов в кавычки

возьмите за правило писать

<input name="animals2" type="radio" data-value="3">
а не
<input name=animals2 type=radio data-value=3>

иначе однажы, когда нужно будет добавить какой-нибудь текст с пробелом в аттрибут, вы огребете немало проблем

ArbNet
На сайте с 27.10.2019
Offline
126
#8
Sly32:
Меня бы в компании, где можно филонить за такой код бы просто убили! Что за хардкод???

Я просто напросто показал как можно сделать без джквери :) что действительно хардкор..

Предложите ТС свой вариант не хардкора :) трындите только. Я б такого как вы вообще на работу не взял, сочувствую вашему работодателю.

silicoid:
иначе однажды, когда нужно будет добавить какой-нибудь текст с пробелом в атрибут, вы огребете немало проблем

Вы думаете я не знаю о пробелах в атрибутах? Когда они присутствуют или код генерируется, кавычки ставятся. А когда указывается значение без пробела и оно статично, тогда они не обязательны. Это не говно код, это логика программирования. Не учите людей элементарным вещам, не будьте снобом :)

X
На сайте с 04.12.2018
Offline
280
#9

Всем спасибо!

Получилось!

S
На сайте с 30.09.2016
Offline
469
#10
Xubart:
Есть задача при нажатии на чекбокс переходить на разные страницы.

Чекбокс не для этого служит.

Xubart:
Есть решение через onclick
Вот это было бы к месту. Или просто по ссылке. ☝
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий