Включить / выключить флажки

Не совсем такая, какова ваша цель, но здесь есть 3-4 решения, которые могут работать:

Common Solutions

Переписать

Это, скорее всего, наиболее традиционный способ получения чистых URI для вашего API. Если вы хотите, чтобы пользовательская часть user.json была динамической, вы можете использовать mod_rewrite (опять же предполагая, что Apache) переписать ваши URL-адреса на скрипт обработчика php. Если вы собираетесь использовать обычный URL-адрес маршрута в стиле RESTful, вы, вероятно, захотите использовать его для достижения чистых / разделенных URL-адресов.

# For grabbing all users
RewriteEngine on
RewriteRule ^users\.json rest.php [L]

# For grabbing one particular user
RewriteEngine on
RewriteRule ^([a-z0-9]+)\.json rest.php?user=$1 [L]

Где rest.php - ваш скрипт обработчика PHP.

URL-адрес Перезапись без изменения mod-rewrite

Если вы не хотите использовать mod_rewrite, вы также можете сделать что-то вроде

example.com/rest.php/users.json
example.com/rest.php/user-id.json

или даже

example.com/rest.php/user-id
example.com/rest.php/user/user-id

Где rest.php - ваш скрипт обработчика PHP. Вы можете захватить user-id из URL (или URI, если мы говорим о терминах RESTful), используя глобальный $_SERVER с $_SERVER['REQUEST_URI'].

Другие решения

Изменение имени загрузки через Content-Disposition:

Я считаю, что вы хотите добавить заголовок Content-Disposition . ..


Это заставит файл загружаться как user.json. Обычно это не поведение, ожидаемое для REST API, но из того, как был сформулирован ваш вопрос, я решил, что выброшу его там.

AddHandler (или AddType)

Предполагая, что вы используете сервер Apache, вы также можете просто использовать директиву AddHandler, чтобы файлы расширения .json обрабатывались так, как они являются php .

AddHandler application/x-httpd-php .json

Предупреждение. Другие простые .json-файлы будут обрабатываться как PHP, поэтому вы, вероятно, захотите установить это в файле .htaccess в каталоге с помощью PHP-скрипта. Это отлично работает для этого URI, но не идеально, если вы подвергаете много URI

378
задан neophyte 17 February 2017 в 07:37
поделиться

15 ответов

Вы можете написать:

$(document).ready(function() {
    $("#select-all-teammembers").click(function() {
        var checkBoxes = $("input[name=recipients\\[\\]]");
        checkBoxes.prop("checked", !checkBoxes.prop("checked"));
    });                 
});

До jQuery 1.6, когда у нас было только attr () , а не prop () , мы писали:

checkBoxes.attr("checked", !checkBoxes.attr("checked"));

Но prop() имеет лучшую семантику, чем attr(), когда применяется к «логическим» атрибутам HTML, поэтому обычно предпочтительнее в этой ситуации.

690
ответ дан Frédéric Hamidi 17 February 2017 в 07:37
поделиться

Ну, есть более простой способ.

Сначала дайте вашим флажкам пример класса 'id_chk'

Затем внутри флажка, который будет контролировать состояние флажков 'id_chk', поставьте:

<input type='checkbox' onchange='js:jQuery(".id_chk").prop("checked", jQuery(this).prop("checked"))' />

Вот и все, надеюсь, это поможет

-3
ответ дан Angel 17 February 2017 в 07:37
поделиться

Этот работает очень хорошо для меня.

   $("#checkall").click(function() {
       var fruits = $("input[name=fruits\\[\\]]");
        fruits.prop("checked", $(this).prop("checked"));
    });
0
ответ дан sovantha 17 February 2017 в 07:37
поделиться
<table class="table table-datatable table-bordered table-condensed table-striped table-hover table-responsive">
<thead>
    <tr>
        <th class="col-xs-1"><a class="select_all btn btn-xs btn-info"> Select All </a></th>
        <th class="col-xs-2">#ID</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td><input type="checkbox" name="order333"/></td>
        <td>{{ order.id }}</td>
    </tr>
    <tr>
        <td><input type="checkbox" name="order334"/></td>
        <td>{{ order.id }}</td>
    </tr>
</tbody>                  
</table>

Попробуйте:

$(".table-datatable .select_all").on('click', function () {
    $("input[name^='order']").prop('checked', function (i, val) {
        return !val;
    });
});
1
ответ дан Karol Gontarski 17 February 2017 в 07:37
поделиться

Этот код будет переключать флажок при нажатии любого аниматора переключателя, используемого в веб-шаблонах. Замените ".onoffswitch-label" как доступный в вашем коде. checkboxID - это чекбокс, включенный здесь.

$('.onoffswitch-label').click(function () {
if ($('#checkboxID').prop('checked')) 
 {
   $('#checkboxID').prop('checked', false);
 }
else 
 {
   $('#checkboxID').prop('checked', true);
 }
});
0
ответ дан Pranesh Janarthanan 17 February 2017 в 07:37
поделиться

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

$("#chkAll").on("click",function(){
    $("input[name=checkBoxName]").prop("checked",$(this).prop("checked"));
});
1
ответ дан Fouad Mekkey 17 February 2017 в 07:37
поделиться

, я думаю, самый правильный человек, который предложил нормальный вариант - это GigolNet Gigolashvili, но я хочу предложить еще более красивый вариант. Проверьте это

$(document).on('click', '.fieldWrapper > label', function(event) {
    event.preventDefault()
    var n = $( event.target ).parent().find('input:checked').length
    var m = $( event.target ).parent().find('input').length
    x = n==m? false:true
    $( event.target ).parent().find('input').each(function (ind, el) {
        // $(el).attr('checked', 'checked');
        this.checked = x
    })
})
0
ответ дан Arthur Sult 17 February 2017 в 07:37
поделиться

Вы также можете написать так же

$(function() {
    $("#checkbox-toggle").click(function() {
        $('input[type=checkbox][name=checkbox_id\\[\\]]').click();
    });
});

Просто нужно вызвать событие щелчка для флажка, когда пользователь нажимает кнопку с идентификатором «# checkbox-toggle».

1
ответ дан Milan Malani 17 February 2017 в 07:37
поделиться

Вот способ jQuery для переключения флажков без необходимости выбора флажка с html5 & amp; ярлыки:

 <div class="checkbox-list margin-auto">
    <label class="">Compare to Last Year</label><br>
    <label class="normal" for="01">
       <input id="01" type="checkbox" name="VIEW" value="01"> Retail units
    </label>
    <label class="normal" for="02">
          <input id="02" type="checkbox" name="VIEW" value="02">  Retail Dollars
    </label>
    <label class="normal" for="03">
          <input id="03" type="checkbox" name="VIEW" value="03">  GP Dollars
    </label>
    <label class="normal" for="04">
          <input id="04" type="checkbox" name="VIEW" value="04">  GP Percent
    </label>
</div>

  $("input[name='VIEW']:checkbox").change(function() {
    if($(this).is(':checked')) {  
         $("input[name='VIEW']:checkbox").prop("checked", false);
     $("input[name='VIEW']:checkbox").parent('.normal').removeClass("checked");
         $(this).prop("checked", true);
         $(this).parent('.normal').addClass('checked');
    }
    else{
         $("input[name='VIEW']").prop("checked", false);
         $("input[name='VIEW']").parent('.normal').removeClass('checked');
    }    
});

http://www.bootply.com/A4h6kAPshx

2
ответ дан yardpenalty 17 February 2017 в 07:37
поделиться

Начиная с jQuery 1.6 вы можете использовать .prop(function) для переключения проверенного состояния каждого найденного элемента:

$("input[name=recipients\\[\\]]").prop('checked', function(_, checked) {
    return !checked;
});
8
ответ дан Ja͢ck 17 February 2017 в 07:37
поделиться

Check-all checkbox должен быть обновлен сам при определенных условиях. Попробуйте нажать на «# select-all-teammembers» , затем снимите отметку с нескольких пунктов и снова нажмите «select-all». Вы можете увидеть несоответствие. Чтобы предотвратить это, используйте следующий прием:

  var checkBoxes = $('input[name=recipients\\[\\]]');
  $('#select-all-teammembers').click(function() {
    checkBoxes.prop("checked", !checkBoxes.prop("checked"));
    $(this).prop("checked", checkBoxes.is(':checked'));
  }); 

Кстати, все флажки DOM-объекта должны быть кэшированы, как описано выше.

2
ответ дан Anatoly 17 February 2017 в 07:37
поделиться

Используйте этот плагин:

$.fn.toggleCheck  =function() {
       if(this.tagName === 'INPUT') {
           $(this).prop('checked', !($(this).is(':checked')));
       }

   }

Затем

$('#myCheckBox').toggleCheck();
7
ответ дан Abdennour TOUMI 17 February 2017 в 07:37
поделиться

Предполагая, что это изображение, которое должно переключаться флажок, это работает для меня

<img src="something.gif" onclick="$('#checkboxid').prop('checked', !($('#checkboxid').is(':checked')));">
<input type="checkbox" id="checkboxid">
2
ответ дан user1428592 17 February 2017 в 07:37
поделиться

Я думаю, что проще просто вызвать клик:

$("#select-all-teammembers").click(function() {
    $("input[name=recipients\\[\\]]").trigger('click');
});                 
9
ответ дан matt burns 17 February 2017 в 07:37
поделиться
jQuery("#checker").click(function(){
    jQuery("#mydiv :checkbox").each(function(){
        this.checked = true;
    });
});
jQuery("#dechecker").click(function(){
    jQuery("#mydiv :checkbox").each(function(){
        this.checked = false;
    });
});
jQuery("#checktoggler").click(function(){
    jQuery("#mydiv :checkbox").each(function(){
        this.checked = !this.checked;
    });
});

;)

1
ответ дан GigolNet Guigolachvili 17 February 2017 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: