如何返回所选元素和另一个未选择元素的数组?

时间:2018-06-11 17:32:50

标签: ruby-on-rails ruby

我想发送两种不同的安排;一个用于发送所选复选框或单选按钮的值,另一个用于向我发送未选中复选框和单选按钮的值。

这就是导致

的原因
<table>   
            <tr aling=center>    
              <th>Realizar</th>
              <td align="center"><input name="selected_privilege[0]" type="checkbox" value="1" /></td>
            </tr>

            <tr aling=center>    
              <th></th>
              <td align="center">lectura</td>
            </tr>

            <tr aling=center>    
              <th>Nacional</th>
              <td align="center" ><input type="radio" name="selected_privilege[0]" value="2"><br></td>
            </tr>


            <tr aling=center>    
              <th>Divisional</th>
              <td align="center" ><input type="radio" name="selected_privilege[0]" value="3"><br></td>
            </tr>

            <tr aling=center>    
              <th>Inmueble</th>
              <td align="center"><input type="radio" name="selected_privilege[0]" value="4"><br></td>
            </tr>
          </table>

到目前为止,这是让我回归的原因

"selected_privilege"=>{"0"=>"2"}

我的控制器

 puts "array selected" + params[:selected_privilege].keys.second.to_s

1 个答案:

答案 0 :(得分:0)

您可以制作隐藏元素,将未选中的元素发送到您的服务器。

例如

<input id="selected_privilege_zero" name="selected_privilege[0]" type="checkbox" value="1" />
<input id="unselected_privilege_zero" name="selected_privilege[0]" type="hidden" value="1" />

<script>
// Jquery
  $('#selected_privilege_zero').on('change', function() {
    if (this.checked) {
      $('#unselected_privilege_zero').value = this.value;
    }
    else {
      $('#unselected_privilege_zero').value = '';
    }
  });
</script>

以上将根据是否选中selected_privilege_zero来翻转unselected_privilege_zero的值。如果元素的值为空,则不会将其发送到服务器。

隐藏元素方法也可以用于单选按钮。