2012-04-17 69 views
0

我有一个表单有几个下拉列表,当选择一个时,它会更新另一个表格。当我提交这个表单时,通过ajax更新的下拉列表的值不会被提交。当我更新后使用萤火虫查看表单时,它看起来不错。表单通过ajax更新未提交选定的值(rails&jquery)

这里是我的代码

var $j = jQuery.noConflict(); 

    $j(document).ready(
function(){ 
    $j('#source_credential_list').change(function(){ 
      var source_credential = $j("#source_credential").val(); 
     $j.post("/retrieved_data_records/keys_for_source_credential", {"source_credential":source_credential}, function(result) { 
     }); 
     }); 
} 

<% form_tag '/retrieved_data_records', :method => :get do %> 

     <tr> 
    <td> 
     <b> Source Credentials</b> 
     </td> 
     <td> 
       <span id="source_credential_list"> 
        <%= render :partial => 'source_credential_list' %> 
       </span> 
     </td> 
    </tr> 
    <tr> 
    <td> 
     <b>Source Keys</b> 
    </td> 
    <td> 
     <span id="source_key_list"> 
      <%= render :partial => 'source_key_list' %> 
     </span> 

    </td> 
    </tr> 
<div id="filtersButton"><td><%=submit_tag 'Filter'%></td></div> 

的source_key_list部分:

<%=select_tag :filter_source_key, options_from_collection_for_select(@all_source_keys, 'key_name', 'display_fancy_name', @selected_key.key_name)%> 

服务器端keys_for_source_credential回报:

$j("#source_key_list").html("<%= escape_javascript(render(:partial => 'source_credential_key_list')) %>"); 

source_credential_key_list parital:

<%=select_tag :filter_source_key, options_from_collection_for_select(@all_credential_keys.sort, 'key_name', 'display_fancy_name')%> 

我的服务器上下拉值尚未提交。我想我可以手动发布我的下拉选择以及表单发布,但它似乎应该工作...我确定我正在做一些愚蠢的事情。

什么想法?

感谢 乔尔

+2

发布实际的,生成的HTML和** not **生成它的代码将是太棒了。 – 2012-04-17 21:13:07

回答

1

原来我的问题是我有一个表我的表格前开始,我的形式结束后,移动表格开始和结束里面的表格解决了我的问题。

0

我想你不能使用VAL,使用文本而不是

$j("#source_credential").text(); 
+0

http://jsfiddle.net/chepe263/JdcHq/ – chepe263 2012-04-17 21:07:37

+1

ID为'source_credential'的元素甚至不在所提供的HTML中,因此无法知道它是什么类型的元素。不过,我认为它应该是问题中提到的下拉列表。 – 2012-04-17 21:15:41

+0

ajax部分工作正常,它的表单提交不工作的权利,由于某种原因,当我用同一个id的元素替换span时,它似乎形式不知道提交它与表单的orig元素一起。 – Joelio 2012-04-18 00:25:41

0

我得到了同样的问题,形式不提交我选择的价值选择的价值。

我通过将'id'更改为'name'来解决问题。