2016-07-27 4 views
0

В моем приложении Rails У меня есть два «button_to» тегов (так что они являются формами)Как подключить входной флажок в форме (button_to)

= button_to("Validate", validate_contracts_path , {method: :patch, class: "bulk-selection"}) 
= button_to("Sign", sign_contracts_path , {method: :patch, class: "bulk-selection"}) 

и у меня есть коллекция флажок ниже в таблице, каждый флажок представляет строку, они должны выполнять массовые действия, а флажки не включены в форму.

td = check_box_tag "selected_records[#{record.id}]" 

Я хотел бы знать, можно ли прикреплять флажки при нажатии одной из кнопок.

Чем больше рельсов путь, тем лучше, но это было бы слишком большим, если он достичь с помощью JS

Благодаря

Подробности Код: Я не знаю, что еще я могу добавить к рельсам код. Здесь вы находитесь в HTML:

Кнопки

<form class="button_to" method="post" action="/contracts/sign"> 
    <input type="hidden" name="_method" value="patch"> 
    <input class="bulk-selection" type="submit" value="Firm"> 
    <input type="hidden" name="authenticity_token" value="rTxalZoJ7H4VgSsa4dlrpCe+/uXitZDRhFo6F/qIZbgIoHTh42Qb2gy9dvgDmtKqT2L1x0oYx6EzPXBNKB0KBA=="> 
</form> 

клеток в таблице

<td><input type="checkbox" name="selected_records[1]" id="selected_records_1" value="1"></td> 
<td><input type="checkbox" name="selected_records[2]" id="selected_records_2" value="2"></td> 
... 
<td><input type="checkbox" name="selected_records[10]" id="selected_records_10" value="10"></td> 
+0

Вы будете предоставлять дополнительные детали кода? – hgsongra

+0

Готово! Скажи мне, если тебе нужно что-то еще! Спасибо за ваше время – Quin

+0

Итак, флажок находится за пределами формы, вам нужно установить флажок all checked в jQuery и добавить его в форму. 'chekedvalues ​​=" "; $ ('input [name = "test"]: checked'). Each (function() { chekedvalues ​​+ = $ (this) .val() + ","; }) ;, а затем получить объект формы и добавьте новое поле для формирования с помощью этого 'chekedvalues' – hgsongra

ответ

0

Вот дополненная snippest для выпуска. Добавить один класс в checkbox называется selected_records и добавить JS код, чтобы получить проверенные значения флажка, также добавить один hidden поля в form называется selected_records с такими же id, после загрузки всех проверили Valus установить его selected_records, как показано ниже.

<script> 
    $(document).ready(function(){ 
     $(".bulk-selection").click(function(){ 
     test = $('.selected_records:checked').map(function() {return this.value;}).get().join(','); 
     $("#selected_records").val(test); 
    }); 
}); 
</script> 

    <td><input type="checkbox" class="selected_records" name="selected_records[1]" id="selected_records_1" value="1"></td> 
    <td><input type="checkbox" class="selected_records" name="selected_records[2]" id="selected_records_2" value="2"></td> 
    ... 
    <td><input type="checkbox" class="selected_records" name="selected_records[10]" id="selected_records_10" value="10"></td> 


<form class="button_to" method="post" action="/contracts/sign"> 
    <input type="hidden" name="_method" value="patch"> 
    <input class="bulk-selection" type="submit" value="Firm"> 
    <input type="hidden" name="authenticity_token" value="rTxalZoJ7H4VgSsa4dlrpCe+/uXitZDRhFo6F/qIZbgIoHTh42Qb2gy9dvgDmtKqT2L1x0oYx6EzPXBNKB0KBA=="> 
    <!-- New Hidden field --> 
    <input type="hidden" name="selected_records" id="selected_records"> 
</form> 

Надеюсь, это вам поможет.

Смежные вопросы