jquery没有load()元素

时间:2012-02-11 18:44:13

标签: jquery python ajax django

我在下面的代码中很难搞清楚load()函数的错误。 这段代码基本上做的是从用户通过一个表单(其id为caltag)获取一个日期(在表单中命名为tabledate),并给出一个包含当天所有事件的表。但无论我通过表格提供什么日期,我总能得到今天的时间表。即使jquery部分被完全执行,我也不确定 正如代码所说,提交按钮甚至被禁用。而且,我不知道如何调试js程序。 已经被困了几个小时。任何建议都会有很大的帮助。

$("#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>

2 个答案:

答案 0 :(得分:0)

为什么要追加字符串&#34;#table&#34;到网址?

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

var values = $("#caltag").serializeArray();是否显示有效数据?在下面的一行尝试console.log(values);以确保生成有效数据

请务必检查所做的实际请求,以确保发送正确的参数并收到正确的内容。

为什么不发送#datepicker的值? var values = { 'date': $("#datepicker").val() };

答案 1 :(得分:0)

根据.load上的JQuery文档:

  

如果字符串中包含一个或多个空格字符,则假定第一个空格后面的字符串部分是确定要加载的内容的jQuery选择器。

如果您正在尝试完成这项工作,那么您就错过了空间。