2012-04-22 6 views
0
私が使用しているテンプレートの形式は

ジャンゴとjQuery - .LOAD後の()の形式は、もはや有効な私はロード

ポップアップのdivにDjangoテンプレートをロードするためにjqueryの.LOAD()を使用しています

とする場合でありますテンプレートはフォームが長く有効ではありませんが、URLを介してテンプレートを訪問するとフォームが有効です。

jqueryの読み込み後にフォームが有効にならないような理由が考えられますか?ここ

は私のフォームです。ここ

def createrecipe(request): 
    if not request.user.is_authenticated(): 
     return HttpResponseRedirect('/index/') 
    else: 
     if request.method == 'POST': 
      form = RecipeForm(request.POST) 
      if form.is_valid(): 
       recipe = form.save(commit=False) 
       recipe.original_cookbook = request.user.cookbooks.all()[0] 
       recipe.pub_date = datetime.datetime.now() 
       recipe.save() 
       user = request.user 
       cookbooks = user.cookbooks 
       cookbook = cookbooks.all()[0] 
       cookbook.recipes.add(recipe) 
       return HttpResponseRedirect('/account') 
     else: 
      form = RecipeForm() 

     return render_to_response('cookbook/createrecipe.html', 
            {'form':form}, 
           context_instance=RequestContext(request)) 

は私のフォームテンプレートである:ここ

{% block content %} 
<div id="createform"> 
<h1>Create New Recipe</h1> 
    <form action="." method="POST"> 
     <table> 
      {% csrf_token %} 
      {{ form.as_table }} 
     </table> 
     <p><input type="submit" value="Submit"></p> 
    </form> 
</div> 
{% endblock %} 

は、ロード機能である:

$(document).ready(function(){ 
    $(".create").on("click", function(){ 
     $("#popupContact").load("/cookbook/createrecipe #createform"); 
    }); 
}); 

は、

snackerfishをありがとう

+0

「有効ではない」に拡張することはできますか?それはバーコード化されたフォーム検証ルーチンですか、それとも...?一つのことをチェックする:1)フォームをロードして、生成されたページのHTMLをスナップショット(ソースの表示、コピー、ペースト)、2)ページとフォームの読み込み、そして別のスナップショットの作成。彼らはどのように違いますか? –

+0

2つを比較しても、jqueryがロードされたページのソースコードはPOSTフォームを含んでいないようですが、フォーム自体はPOSTフォームを持っているようです。 – snackerfish

+0

Ah ha!ゲームが進行中です! :-) –

答えて

0

あなたのサブミットボタンはjQueryまたはデフォルトのフォーム動作によって実行されます。あなたのコードでは、jqueryの.on()メソッドを使用して、ajaxデータを処理する際に読み込まれたフォームが見えないと思います。 http://api.jquery.com/on/

+0

私は.clickを.on(click、function())に切り替えましたが、同じ問題がまだあります – snackerfish

+0

この$( "first-selector")のように使用してくださいon( "click"、 "other"、function ...あなたの最初のセレクタは常にjavascriptがロードされた時点で常に存在します。 "other"はdinamicalyにロードされたselectorです。 – loki

+0

.load関数を使用していたにもかかわらず、フォームが有効ではないようです。 – snackerfish