если флажок установлен, то переключатель не установлен, а если флажок не установлен, переключатель установлен с помощью jquery. - PullRequest
0 голосов
/ 03 января 2019

У меня там форма содержит один флажок и один переключатель.Я делаю это, когда флажок установлен, тогда переключатель не установлен, а когда флажок не установлен, переключатель установлен с помощью jquery

<form class="col s12" action="rpt_collection_summary.php" method="post" enctype="multipart/form-data" name="frm1" target="_blank">
    <input type="radio" id="test5" checked="checked" name="thismonth" value="<?php echo date("Y-m");?>"/>
    <input type="checkbox" id="chk_date" name="chk_date" value="1" /><label for="chk_date">Select Date </label>
</form>

Проблема заключается в том, что если флажок не установлен, то радио не проверяется.Я делаю так

1005 *

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Вы можете использовать что-то вроде этого кода jquery. Для Generic я использовал один и тот же класс как для флажка, так и для радио. Для этого случая я использовал toggleCheck

$('.toggleCheck').click( function() {
    var value = $(this).prop('checked');
    if(value != '') {
        $('.toggleCheck').prop('checked', false);
        $(this).prop('checked', true);
    } else {
        $('.toggleCheck').prop('checked', true);
      $(this).prop('checked', false);
    }
});

А в вашем HTML вам может потребоваться изменить это value="<?php echo date("Y-m");?>" на value="<?php echo date('Y-m');?>"

Рабочий пример https://jsfiddle.net/Lbj5mhr8/2/

0 голосов
/ 03 января 2019
Can you try this way,But this is both are radio buttons

var allElems = document.getElementsByTagName('input');
for (i = 0; i < allElems.length; i++) {
  if (allElems[i].type == 'radio' && allElems[i].value == 'none') {
    allElems[i].checked = true;
  }
}
$('form :radio').attr('data-ischecked', function() {
  return this.checked;
}); 
$('form').on('click', ':radio', function() {
  var status = $(this).data('ischecked'); //get status
  status && $(this).prop("checked", false); //uncheck if checked
  $(this).data('ischecked', !status); //toggle status
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <label for="none">None</label>
  <input type="radio" id="none" name="myradios" value="none" />
  <label for="unconfirmed">Unconfirmed</label>
  <input type="radio" id="unconfirmed" name="myradios" value="unconfirmed" />
</form>
0 голосов
/ 03 января 2019

Вам нужно изменить:

$('#test5').Attr('checked');

до:

$('#test5').prop('checked',true);

Пример выполнения:

$(document).ready( function() {
$('#chk_date').click( function() {
    if ($(this).is(":checked")){
      $('[name="frm1"] input:radio').removeAttr('checked');
    } else {
      $('#test5').prop('checked',true);
    }
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<form class="col s12" action="rpt_collection_summary.php" method="post" enctype="multipart/form-data" name="frm1" target="_blank">
    <input type="radio" id="test5" checked="checked" name="thismonth" value="test"/>
    <input type="checkbox" id="chk_date" name="chk_date" value="1" /><label for="chk_date">Select Date </label>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...