我有一个collection_select标签作为第一个组合框,对于第二个组合框,我使用了基本的html语法,在选择第一个组合框的值时,第二个组合框的值被填充。此功能正常工作,但在查看页面源代码时,它不会在option标签下显示填充的值。
我的视图页面是..
<% form_tag (:action =>:verify)do%>
<%= label_tag(:user,"Select Student") %><br/>
<%= collection_select("std", "id",@result,"sid", "sid",:prompt=>"--Select Student--")%><h9> *</h9><br/>
<select id = 'sub_id'>
<option value="1">--Select Server--</option>
</select>
<%= submit_tag 'Submit',:id => 'btn'%>
在调用jquery之后的第一个组合的更改事件时。
jQuery(document).ready(function(){
jQuery("#std_id").change(function() {
jQuery.get('/controllers/find_val/?sid=' + jQuery("#edetail_id").val(), function(data) {
var ds = data.split(' ');
ds.pop();
var options;
jQuery.each(ds, function(index, item) {
options += "<option value='" + ds[index] + "'>" + ds[index] + "</option>";
});
jQuery("#sub_id").empty();
jQuery("#sub_id").append(options).combobox();
});
});
});
我的控制器是...
def find_val
@res = Student.find(:all, :conditions => ["sid = ?",params[:sid]])
end
一切都很顺利,但是在添加了第二个组合的值之后,这些值没有在页面源代码中显示,因此我无法在控制器中捕获第二个组合的选定值进行进一步处理。
发布于 2012-12-21 15:05:04
试着这样做:
var options = {};
jQuery.each(ds, function(index, item) {
options[ds[index]] = ds[item];
});
jQuery("#sub_id").empty();
jQuery("#sub_id").addOption(options, false);
https://stackoverflow.com/questions/13985562
复制相似问题