Нужна помощь: активировать чекбоксом два события

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 25 октября 2019 в 21:08

Привет, голову сломал но не могу реализовать))
Идея такова, при клике на чекбокс, отправляется событие через скрипт, и дополнительно активирует для показа див блок.
Проблема в том что активация Дива (скрипт активации сюда не вписал), происходит по id и отправка события тоже через id, в итоге два id не могу установить в чекбокс.
1 чекбокс -вызывает форму, и отправляет событие (скрипт). 2 чекбокс просто отправляет событие ( скрипт).
Так же нужно, чтобы при включении одного из чекбоксов, второй был не активен- (это работает).
Надеюсь понятно обьянил)

Сам код. чекбокса
  1.  
  2. <label class="raschet"><input type="radio" id="raschet" name="raschet" value="1" />{$LANG.PL_US}</label>
  3. <label class="raschet"><input type="radio" id="raschet2" name="raschet" value="0" />{$LANG.PL_SELF}</label>
  4.  
Форма Див
  1.  
  2. <div class="form"></div>
  3.  
Скрипт обработки события (не скрытие дива)

  1.  
  2.  
  3. <script>
  4. $('.control-label span').tooltip();
  5. var raschet = document.getElementsByName('raschet');
  6. $(raschet).on('click',function(){
  7. var a = $(this).val();
  8. $('#submit1').toggleClass('hidden');
  9. dalee(a)
  10. })
  11.  
  12. function dalee(ch){
  13. var selected = new Array();
  14. {literal}$("input[name='healse[]']:checked").each(function() {selected.push($(this).val());});{/literal}
  15. if (selected .length != 0) {
  16. var dis = selected.join(',');
  17. }
  18. if(ch != 0){
  19. $('#submit1').on('click',function(){
  20.  
  21. var a = document.forms['index-form'].ves.value;
  22. var b = document.forms['index-form'].rost.value;
  23. var neck = document.forms['index-form'].neck.value;
  24. var weist = document.forms['index-form'].weist.value;
  25. var hip = document.forms['index-form'].hip.value;
  26. var stor = localStorage.getItem('date_opt');
  27. var opt_ves = localStorage.getItem('opt_ves');
  28. var stor = moment(stor).format('YYYY-MM-DD');
  29. if(a && b ){
  30. $.ajax({
  31. url: '/dta/'+'{$usr.login}'+'/index',
  32. type: "POST",
  33. {literal} data: ({ves : a,rost:b,date:stor, opt_ves:opt_ves, items:dis,neck:neck,weist:weist,hip:hip}){/literal},
  34. success: function(data){
  35. location.href='/dta/'+'{$usr.login}'+'/sport';
  36. }
  37. })
  38. }else{
  39. core.alert('Вы не заполнили поля', LANG_ERROR);
  40. }
  41. })
  42. //}
  43. }
  44. else
  45. {
  46. $('#submit1').on('click',function(){
  47.  
  48. var r = document.forms['my-opt'].rost.value;
  49. var a = localStorage.getItem('real_vs');
  50. var b = localStorage.getItem('wish_vs');
  51. var stor = localStorage.getItem('opt_date');
  52. var stor = moment(stor).format('YYYY-MM-DD');
  53.  
  54.  
  55. $.ajax({
  56. url: '/dieta/'+'{$usr.login}'+'/index',
  57. type: 'POST',
  58. data: ( {literal} {real_ves : a, wish_ves:b, date:stor, rost: r, items:dis}{/literal}),
  59. success: function(data){
  60. localStorage.clear();
  61. location.href='/dieta/'+'{$usr.login}'+'/sport';
  62.  
  63. }
  64. })
  65.  
  66. })
  67. }
  68. return;
  69. }
  70. </script>
  71.  

Пример того откуда брал идею для скрытия дива
  1.  
  2. <input type = 'checkbox' id = 'cb1' onchange = 'showOrHide("cb1", "cat1");'/>Показать содержимое категории 1
  3. <br />
  4.  
Скрипт
  1.  
  2. <script type="text/javascript">
  3. function showOrHide(cb, cat) {
  4. cb = document.getElementById(cb);
  5. cat = document.getElementById(cat);
  6. if (cb.checked) cat.style.display = "block";
  7. else cat.style.display = "none";
  8. }
  9. </script>
  10.  
Но данный скрипт тоже привязывается по id и не срабатывает.
#2 25 октября 2019 в 21:31

Надеюсь понятно обьянил)

Заралик
Не надейтесь.
Сделайте функцию на jquery (или на чистом js, как Вам удобнее) и запускайте её по клику на тот чекбокс. А в ней можете делать что душе угодно.
#3 25 октября 2019 в 21:51


Надеюсь понятно обьянил)

Заралик
Не надейтесь.
Сделайте функцию на jquery (или на чистом js, как Вам удобнее) и запускайте её по клику на тот чекбокс. А в ней можете делать что душе угодно.

Ris

Здравствуйте. С этим я плохо разбираюсь ещё. Вы сможете мне помочь? Могу оплатить за работу если не сильно дорого.
#4 25 октября 2019 в 22:13
Заралик,
Вы лучше объясните попонятнее, что нужно сделать по чекбоксу?
Кстати, просто по клику или чтобы чекбокс был при этом checked?
Рисуете просто что-то типа
$('#id_чекбокса').click(function(){
$('.класс_дива_который_надо_скрыть').css('display', 'none');
Ещё что нужно сделать
});

Вы сможете мне помочь?

Заралик
Я сам в яваскрипте не разбираюсь. Если мне что-то нужно сделать — экспериментирую. Но для этого нужно понимать, что нужно сделать.
А понимания нет
Лучше подождите, пока откликнется специалист по яваскрипту.
Пока ждете, почитайте здесь:
www.wisdomweb.ru/JQ/jquery-first.php
Мне помогает…
#5 26 октября 2019 в 22:21

Вы лучше объясните попонятнее, что нужно сделать по чекбоксу?

Ris
Здравствуйте. Нужно чтобы — <label class="raschet"><input type="radio" id="raschet" name="raschet" value="1" />{$LANG.PL_US}</label>
обрабатывал два id. id=""raschet id="forma".Примерно так -<label class="raschet"><input type="radio" id="raschet" id="forma" name="raschet" value="1" />{$LANG.PL_US}</label> У меня получается сделать так чтобы чекбокс работал только с одним id, с двумя не выходит.

Кстати, просто по клику или чтобы чекбокс был при этом checked?

Ris
можно по клику (сейчас у меня по клику если не ошибаюсь).



$('#id_чекбокса').click(function(){
$('.класс_дива_который_надо_скрыть').css('display', 'none');
Ещё что нужно сделать
});

Ris
Это я понял,

К примеру делаю так —
-<label class="raschet"><input type="radio" id="raschet" id="forma" name="raschet" value="1" />{$LANG.PL_US}</label>
<div class="form"></div>
<script>
$('#forma').click(function(){
$('.form').css('display', 'none');
});
</script>
Остается вопрос, будет ли второй — id="raschet" работать? Первый id -открывает форму(разобрались) при активации чекбокса, А вот 2 id активирует функцию, которая тоже привязана к этому чекбоксу.

www.wisdomweb.ru/JQ/jquery-first.php

Ris
— тоже изучаю понемногу. Но просто хочу понять, можно ли в кнопку, чекбокс и т.д вставить два id или нет?
#6 26 октября 2019 в 22:51
Ё-о-о-жи-ы-ык!!!
#7 29 октября 2019 в 11:00
Решение нашел.
Два id можно вставить в radio или чек бокс..

Далее, чтобы к своему чекбоксу привязать две функции по id (1 -див показ/скрыть, 2- действие)
<input type="checkbox" id="checkbox"> Показать блок с текстом

<div id="div" id="raschet" style="display: none;">
сюда ставим нужный див, который будет скрыт (при клике показ).
</div>

<script>
$('#checkbox').click(function(){
if ($(this).is(':checked')){
$('#div').show(100);
} else {
$('#text').hide(100);
}
});
</script>

Если чекбокс не 1 а 2. И нужно чтобы только один был отмечен, делаем следующее.
<div id="group">
<input type="checkbox">checkbox 1
<input type="checkbox">checkbox 2
<input type="checkbox">checkbox 2
</div>

<script>
$('#group input:checkbox').click(function(){
if ($(this).is(':checked')) {
$('#group input:checkbox').not(this).prop('checked', false);
}
});
</script>

Всем спасибо кто пытался помочь))
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.