2012-02-11 17 views
0

以下のコードでload()関数の何が間違っているかを把握していません。 このコードは基本的には、ユーザーからフォーム(idがcaltag)を介して日付(フォームでtabledateという名前)を取得し、その日のすべてのイベントを含む表を提供します。しかし、私がフォームを通して与える何時でも、私はいつも今日のスケジュールを取得します。 送信ボタンがコードの通りに無効になっているため、jqueryパーツが完全に実行されていてもわかりません。さらに、私はjsプログラムをデバッグする方法を知らない。 これで何時間も立ち往生したことがあります。どんな提案も大きな助けになるでしょう。jquery does not load()要素

$("#caltag").submit(
       function(e){ 
        $("#caltag").attr('action', '/table/fetch/'); 
        e.preventDefault(); 
        $("submit").attr('disabled',true); 
        var calform=$("#caltag"); 
        var values = $("#caltag").serializeArray(); 
        $("#table").load(
         $("#caltag").attr('action') + "#table", 
         values, 
         function() { 
          $("#table").hide().fadeIn(1000); 
          $("#getdate").attr('disabled', false); 
         });}); 

同じ用

def table(request): #  '/table/fetch/' requests of this view 
events=[['_'] * 5 for row in range(5)] 
if request.method=='POST': 
    datestring=request.POST['tabledate'] 
    date=datetime.strptime(datestring,'%m/%d/%Y').strftime('%Y-%m-%d') 
else: 
    date=datetime.today() 
eventset=Location.objects.filter(eventdate=date) 
for event in eventset: 
    events[event.x][event.y]=event 
return render(request, 'scheduler/table.html',{'events':events,'tabdate':date}) 

HTMLフォームのビューの一部。

<div id="cal" class="span-10"> 
       <form method='POST' id='caltag' action="/table/fetch/"> 
        <p> 
         <label for="datepicker">tabledate:</label> 
         <input type="text" id="datepicker" name="tabledate" /> 
        </p> 
        <input type='submit' id="getdate"> 
       </form> 
      </div> 
+0

$( "#caltag")。attr( 'action')+ "#table"は意味がありません。あなたが.tableを意味するなら、あなたはattr( 'action')と.tableの間のスペースが必要です。デバッグするには、alert(variable)またはconsole.log + firebugを使用することができます。 – mkk

+0

クロムでインスペクタを開くかfirefoxを起動し、送信されたリクエストを追跡して、サーバに送信されたものと返されるものを確認します。 – Richard

答えて

0

なぜ「#table」という文字列をURLに追加しますか?

$("#caltag").attr('action'), 

var values = $("#caltag").serializeArray();は有効なデータを表示しますか?下の行にconsole.log(values);を入力して、有効なデータが生成されていることを確認してください。

正しいパラメータが送信され、適切なコンテンツが受信されていることを確認するための実際の要求を必ず確認してください。

なぜの値を送信しないのですか? .LOADにjQueryのドキュメントを1としてvar values = { 'date': $("#datepicker").val() };

0

一つ以上の空白文字が文字列に含まれている場合、第一の空間次の文字列の部分を決定するjQueryのセレクタであると仮定されますロードされるコンテンツ

これが達成しようとしているのであれば、スペースが不足しています。