我正在学习jquery。我会做这样的事情:在view1中我有一个select_tag及其选项(1,2,3 ......)。我选择一个选项并将其传递给view2。在view2中,我还有一个select_tag和它的选项,但可以做多个选择。所选选项的总和必须等于我发送的数字。提交或刷新/重新加载页面后,我会在view2中检查所选的选项。你能帮帮我吗?非常感谢你!
视图1
<%= form_tag(view2_path, method: "get") do %>
<%= select_tag "num", "<option>1</option><option>2</option><option>3</option>".html_safe, :id => "sel"%>
<%= submit_tag "Ok"%>
<% end %>
视图2
<%= form_tag(another_path, method: "get", id: "sel") do %>
<table>
<tr>
<th></th>
<th>Numero</th>
</tr>
<% for posti in @postis %>
<tr>
<td><%= check_box_tag "posti_ids[]", posti.id %></td>
<td><%=h posti.numero %></td>
</tr>
<% end %>
</table>
<%= submit_tag "Ok", id: "sub"%>
<% end %>
View1.js:这里没有问题。
$(document).ready(function($)
{
$('#sel').change(function() {
var mylist = document.getElementById("sel");
iterations = mylist.options[mylist.selectedIndex].text;
window.localStorage.setItem("num",iterations);
alert(window.localStorage.getItem("num"));
window.location.assign(scegli_posti_path);
});
});
View2.js:我在这里遇到了一些问题 问题1:如何在select_tag上检索数据? problem2:checked元素的总和必须等于我传递的数据。我该怎么做? 问题3:如何在View2上重新加载/返回后检查我检查的选项?
$(document).ready(function() {
var c= window.localStorage.getItem("num");
var a=0;
$("#sel").click( function(){
var chkId= [];
$("#posti_ids_:checked").each(function() {
chkId.push( $(this).val());
a=chkId.length;
});
});
$("#sub").click( function(){
if(a != c)
{
alert("Sum of checkboxes selected must equal at number that you pass");
return false;
}
});
});
谢谢!