将Jquery .load()与变量一起使用

时间:2010-11-04 20:24:24

标签: jquery ajax forms load

我确定我在这里做错很多,但具体来说我正试图从表单中提取一些信息并将其合并到一个网址中然后我可以.load():

$(document).ready(function() {

    origin = $('#origin').val();
    destination = $('#destination').val();
    weekDay = $('#weekday').val();
    fullSchedule = origin+'_'+destination+'_'+weekDay+'.html';

    $("#scheduleform :submit").click(function() {           
        $('#schedule').load(fullSchedule);          
        alert( fullSchedule );  
    });
});

我可以提醒完整的网址,但我似乎无法将其加载到div中(使用日程安排的ID)。

我基本上把我所知道的小jquery放在一起,所以我确定它很乱,但我不确定为什么它会正常警告但不加载div。

2 个答案:

答案 0 :(得分:5)

如果你有Firebug,你能否验证请求是否发送到服务器并且你得到了响应?还可以尝试在load中设置回调以查看加载是否成功完成:

$('#schedule').load(fullSchedule, function(responseText, textStatus, XMLHttpRequest) {
  alert("Load result: " + responseText + " " + textStatus);
});

其他一些事情:

  • 网址是否为有效网址?
  • 是否在同一个域名?

我注意到了另外一件事。您是否有任何理由使用click()代替submit()?所以:

$("#scheduleform").submit(function() {
   ...
   return false; //You probably don't want the page to actually submit and reload
});

绕过整个提交业务的另一种方法就是使用一个不是提交按钮的标准按钮,并将click绑定到它(取决于你当然在做什么 - 我不喜欢不知道你是否真的要提交任何东西。

答案 1 :(得分:1)

你确定表单没有提交并重新加载吗?您需要使用preventDefault()

停止默认操作
$("#scheduleform :submit").click(function(e) {   
    e.preventDefault();        
    $('#schedule').load(fullSchedule);
});