我的表單中有兩個select元素,Category和Sub-category。首先,只顯示類別選擇。當用戶在類別選擇中做出選擇時,會向服務器發送AJAX請求,並顯示子類別選擇。它工作正常。在表單提交錯誤後顯示基於Ajax的元素
現在,當表單提交中出現錯誤時,由於任何原因,缺少某些必需的值或任何其他值,我會顯示錯誤消息,但我無法保留選擇框的相同狀態,我看到只有類別選擇,沒有選擇任何值,即初始狀態。任何人都可以建議我如何保持這些選擇元素的狀態?
下面是我的新形式的代碼片段:
<div id="category-select">
category <%= collection_select :post_category, :id, @categories, :id, :name,
options = {:prompt => "Select a category"} %>
</div>
<div id="sub-category-select">
</div>
這裏是我的jQuery腳本發送時作出選擇的類別選擇AJAX請求:
$("#post_category_id").change(function() {
var category_id = $('select#post_category_id :selected').val();
if(category_id == "") category_id="0";
$.get('/posts/update_sub_cat/' + category_id, function(data){
$("#sub-category-select").html(data);
})
return false;
});
Ajax請求是由上update_sub_cat在post_controller中的操作,如下所示:
def update_sub_cat
if params[:id].present?
@sub_categories = Category.find_all_by_parent_id(params[:id])
else
@sub_categories = []
end
respond_to do |format|
format.js
end
末
Ajax請求呈現update_sub_cat.js.erb文件,在我所使用的一些HMTL
sub-category <%= collection_select :post_sub_category, :id, @sub_categories, :id, :name,
options = {:prompt => "Select a sub-category"} %>
我知道,我不應該直接在這裏使用HTML,而是使用$( 'sub-category-select).append(...),但我知道它是這樣工作的,我計劃稍後再改變它。
這是我的程序的這部分所涉及的所有代碼。
任何人都可以幫助我嗎?
你將不得不提供更多細節。爲什麼你不能保持選擇框的狀態?你如何顯示錯誤?等等...我們是一個編程社區,向我們展示代碼,以便我們可以提供幫助,否則我們無法做到。 – iwasrobbed
對不起,我認爲這會有一些一般的伎倆,這就是爲什麼我沒有提供細節,我現在詳細說明了我的問題,請看看。謝謝。 – rookieRailer
感謝您對標籤的修改。只顯示我在stackoverflow使用的經驗不足:) – rookieRailer