【问题标题】:form not submitting selected value when updated via ajax (rails & jquery)通过 ajax (rails & jquery) 更新时表单未提交选定的值
【发布时间】:2012-04-17 20:55:44
【问题描述】:

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')%>

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

有什么想法吗?

谢谢 乔尔

【问题讨论】:

  • 发布实际生成的 HTML 而不是生成它的代码会很棒。

标签: jquery ruby-on-rails


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • ID 为source_credential 的元素甚至不在提供的HTML 中,因此无法知道它是什么类型的元素。不过,我认为它应该是问题中提到的下拉列表。
    • ajax 部分工作正常,它的表单提交工作不正常,由于某种原因,当我用具有相同 id 的元素替换跨度时,似乎表单不知道提交它使用表单的原始元素。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-29
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多