过滤后保留<select>值

时间:2016-10-25 15:03:51

标签: javascript jquery ruby-on-rails

所以我的表格看起来像是什么(再加上3个跨度[sub1 / sub2 / sub3]) &lt; label for =&#34; levelSelect&#34;&gt;选择级别&lt; / label&gt;   &lt; select id =&#39; levelSelect&#39;&gt;     &LT;选项&GT; &LT; /选项&GT;     &lt; option value =&#39; 1&#39;&gt; Primary&lt; / option&gt;     &lt; option value =&#39; 2&#39;&gt; Lower Secondary&lt; / option&gt;     &lt; option value =&#39; 3&#39;&gt; Upper Secondary&lt; / option&gt;     &lt; option value =&#39; 4&#39;&gt; JC&lt; / option&gt;   &LT; /选择&GT; &lt; label class =&#39; dummySearch&#39;&gt; Subject&lt; / label&gt; &lt; select class =&#39; dummySearch&#39; style =&#39; width:150px;&#39;&gt;&lt; / select&gt; &lt; span id =&#39; primarySearch&#39;&gt;   &lt;%= label_tag&#39; subject_search&#39;,&#39;主题&#39; %GT;   &lt;%subject_array = Subject.all.map {| subject | [subject.name]}%&gt;   &lt;%= select_tag&#39; subject_search&#39;,options_for_select(subject_array,:selected =&gt; params [:subject_search]),: include_blank =&gt; true,class:&#39; form-control&#39; %GT;  &LT; /跨度&GT; 因此,如果我按下提交时它是一个普通的过滤器,那么subject_search内的任何值都将保留在那里。 传入的过滤器通常会返回这样的URL https://example.com/tutors?utf8=%E2%9C%93&subject_search=&lssubject_search=Chinese&ussubject_search=&jcsubject_search=&fees_search=&commit=Filter 因此,默认情况下,我的表单只有2个选择下拉列表。第一个是levelSelect,另一个是dummySearch。当有人在levelSelect下选择一个选项时,相关的&lt; select&gt;会发生什么?将渲染,替换dummySearch。 现在我面临的问题是,当有人传入相关过滤器然后提交表单时,显示会恢复原来的levelSelect和dummySearch,而不是传入的过滤器。 我想说明虽然我要在过滤器通过后选择levelSelect,但我能够在第二个选择表单中看到所选值。它保留了我遇到困难的levelSelect中的值。因为它是传统的&lt; select&gt;标签及其唯一的作用是指示第二个选择表单将呈现什么,我在保留所选值时遇到问题。 我实际上对jQuery并不是很熟悉,但这是在各种主题搜索之间进行交换的内容。 $(文件)。就绪(函数(){   function hideDummy(){     $(&#39; select.dummySearch&#39;)隐藏()。     $(&#39; label.dummySearch&#39;)隐藏()。   }   function showDummy(){     $(&#39; select.dummySearch&#39;)。节目();     $(&#39; label.dummySearch&#39;)。节目();   }   function hidePrimary(){     $(&#39;跨度#primarySearch&#39;)。隐藏();   }   function showPrimary(){     $(&#39;跨度#primarySearch&#39;)显示()。   } $(&#39;选择#levelSelect&#39;)。change(function(){     var i = $(&#39;选择#levelSelect&#39;)。val()     if(i == 1){       hideDummy();       hideLowerSec();       hideUppSec();       hideJC();       showPrimary(); } 我没有粘贴整个JS代码,但这就是想法,它只是重复自己,i == 2,依此类推。 我不确定我是否正确行事,以及我如何确保我的表单仍然是传入的内容而不是重置为默认值?

0 个答案:

没有答案