私は顧客の住所を保存するフォームを持っています。フォームテキストエレメントのリストを読み、フォームを提出する前に、それらがすべて記入されていることを確認するために、次のコードを作成しました。しかし、フォームが送信され、フォームがAjax経由でリロードされると、jQueryは参照を失い、フォームのテキスト要素を越えて移動しなくなります。jQuery - Ajaxでリフレッシュされたフォームへの参照を失う
$('#cart-addresses :text').each(function(){
if(sAB == true){
if(this.id.includes("_0_") && this.id != "cart_cart_addresses_attributes_0_address_line_two" && this.value == ""){
ready = false;
}
}else{
if(this.id != "cart_cart_addresses_attributes_0_address_line_two" && this.id != "cart_cart_addresses_attributes_1_address_line_two" && this.value == ""){
ready = false;
}
}
});
私がAjax経由で読み込んだその他の要素については、このようなものを使用しています。
$("#cart-addresses input[type=text]").on('keyup',function(e){ myHandler(e); });
しかし、私はAjaxの呼び出しが参照が失われないように、フォームに事の同じタイプを行う方法がわかりません。
Ajax呼び出しは、次のjavascriptで応答を受け取ります。
var $context = this;
あなたはそれを保存した後どこにでも使用することができます。
$("#address-content").html("");
$("<%= escape_javascript(render :partial => "addresses", :locals => { cart: @cart, countries: @countries}) %>").appendTo("#address-content");
$("#shipping-methods").html("");
$("<%= escape_javascript(render :partial => "shipping_methods", :locals => { cart: @cart}) %>").appendTo("#shipping-methods");
$("#order-details").html("");
$("<%= escape_javascript(render :partial => "order_details", :locals => { cart_items: @cart_items, totals: @totals}) %>").appendTo("#order-details");
setStates(0);
setStates(1);
isShippingEqaulToBilling();
ajaxの「成功」ブロック – Amogh
を表示する*「フォームが送信され、フォームがAjax経由でリロードされる」* - フォーム全体を置き換えるのはなぜですか?あなたは情報を読んで、それを既存の形式に入れることはできませんか? – GolezTrol
@GolezTrol私はRuby on Railsを使用しています。そのマナーでフォームをレンダリングすると、Railsは自動的にエラーのあるフィールドを生成します。 –