提交后jquery无法正常工作

时间:2015-12-15 17:07:02

标签: jquery ajax get

我想从用户提交重定向网址。但是,它没有用。

<script>
$(function() {
  $("#form1").on("submit", function(event) {
   var username=$('#username').val();
   var jqxhr = $.get( "/get_url.php",{ username: ""+username+""}, function(data) {
   alert("Go to "+data);
   $(this).attr('action', data);
  });
 });
});
</script>

但如果我把 event.preventDefault(); 它会显示我想要重定向的网址。 (抱歉我的英语不好)

3 个答案:

答案 0 :(得分:1)

您想从get_url.php获取网址,然后提交表单

然后你必须:

  1. 阻止表单提交
  2. 获取正确的网址
  3. 创建具有相同内容和不同操作的另一个表单
  4. 提交新表格。

    <script>
    function submit_form_to_url(form, url) {
    
    var new_form = $("<form action='"+url+"' method='"+form.attr("method")+"'>");
    
    new_form.html(form.html());
    
    $("body").add(new_form);
    
    new_form.submit();
    }
    
    $(document).ready(function() {
    
    $("#form1").on("submit", function(event) {
    
        event.preventDefault(); // Prevent form from submitting
    
        var username=$('#username').val();
    
        var jqxhr = $.get( "/get_url.php",{ username: ""+username+""},             function(data) {
    
            alert("Go to "+data);
    
            submit_form_to_url($(this), data);
    
        }
    
    });
    
    });
    
    </script>
    

答案 1 :(得分:0)

更新HTML,将提交更改为按钮。

myIndex++;
myIndex %= imageData.length;

答案 2 :(得分:0)

  

我想更改操作方法并将所有数据发布到

要发送您可以使用serialize的所有输入,并为发布请求使用ajax $.post请求:

$.post( "/get_url.php", $("#form1").serialize());
  

我想从用户提交重定向网址

要重定向用户,您可以使用:

window.location.replace("Url HERE");

完整示例:

$(function() {
    $("#form1").on("submit", function(event) {
        $.post( "/get_url.php", $("#form1").serialize(), function(url) {
            window.location.replace(url);
        });
    });
});

希望这有帮助。