0

I have a form that has several drop downs, when one is chosen, it updates another. 当我提交此表单时,不会提交通过 ajax 更新的下拉列表的值。当我在更新后使用 firebug 查看表单时,它看起来不错。

这是我的代码

  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 部分:

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

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

有任何想法吗?

谢谢乔尔

4

3 回答 3

1

原来我的问题是我的表格在表格之前开始并在表格之后结束,将表格开始和结束移动到表格内解决了我的问题。

于 2012-04-18T21:25:24.090 回答
0

我认为你不能使用 val,而是使用文本

 $j("#source_credential").text();
于 2012-04-17T20:57:50.380 回答
0

我遇到了同样的问题,表单没有在选择元素中提交我选择的值。

我通过将“id”更改为“name”来解决。

于 2014-02-06T15:36:11.717 回答