2012-10-18 55 views
1

当使用GET方法提交表单时,我正在重新加载页面的一部分。下面的JavaScript运行,但我不确定如何从窗体中获取提交的URL?通过jQuery/Ajax获取GET URL

我会想到var link = jQuery(this).attr('GET');或somethign会返回它,并尝试URL等......没有运气,但。有任何想法吗?

jQuery('form').submit(function(e){ 
    e.preventDefault(); 
    var link = jQuery(this).attr('GET'); //Get the href attribute 
    alert(link); 
    history.pushState('data', '', link); 
    jQuery('#search_main_section').fadeTo(300,0.3,function(){ 
     load(link + ' #search_main_section', function(){ jQuery("#loader").hide(); 
     jQuery('#search_main_section').fadeTo(100,1, function(){}); 
    }); 
}); 

回答

3
var link = jQuery(this).prop('action'); 

如果你想表单的值,你想用用行动serialize()

实例和负载searlize。

$("#form1").on("submit", function(e) { 

    e.preventDefault(); 

    var form = $(this); 
    var action = form.attr("action") || window.location.href; 
    var formValues = form.serialize(); 
    //example with get  
    //$.get(action, formValues, function(){ alert("done"); }); 
    //example with load 
    var url = action + "?" + formValues; 
    $.load(url + ' #search_main_section', function(){ jQuery("#loader").hide(); 
});​​​​​​​​​​ 
+0

不要忘记返回FALSE;最后! – silly

+2

@silly,这是preventDefault在OP代码中的作用。 – epascarello

+0

对,对不起! +1! – silly

0
<form action="something.php" method="POST"> 

</form> 


jQuery('form').submit(function(e){ 
    e.preventDefault(); 
    var url = $(this).attr('action'); 
    ....// rest of code