形式"行动"使用javascript

时间:2015-02-27 18:23:58

标签: javascript ajax html-form

html代码:

<section class="main">
<form class="form-4" name="form4" id="form4" method="POST">
    <p class="submit">
        <button type="submit" name="submit" onclick="show()"><i class="icon-thumbs-up icon-large"></i></button>                     
    </p>
</form>
</section>

js code:

function show(){

      $.ajax({        
      type: "POST",
      url: "check_login_points.php",
      data: {test : JSON.stringify(arr)},
      success: function(data) {

                if(data == 0)
                {

                  alert("       SORRY :( \n misplaced cue points.");
                }
                else if(data == 1)
                {
                  document.getElementById("form4").action = "http://localhost/profile_book/login_key.php";
                  //alert("WELCOME !!!");
                  //$("#form4").attr('action', 'http://localhost/profile_book/login_key.php');
                }
                else if(data == 2)
                {

                  alert("enter cue-points");
                } 
            }
        }); 
}

当ajax函数成功时,我试图在javascript中放置表单操作。但表单行动似乎不起作用。建议非常感谢。提前谢谢!

2 个答案:

答案 0 :(得分:3)

你不能做你想做的事,因为异步性。它需要分解成多个部分。

首先,将按钮重命名为其他内容。你会遇到问题。

<button type="submit" name="btnSubmit" />

第二次使用jQuery绑定表单提交,而不是内联事件。

$("#form4").on("submit", function(event) {
    //cancel the submission
    event.preventDefault();
    //call your logic
    show();
});

现在最后一件事是在设置操作后手动触发提交。

function show (){
      $.ajax({        
      type: "POST",
      url: "check_login_points.php",
      data: {test : JSON.stringify(arr)},
      success: function(data) {

                if(data == 0) {
                  alert("SORRY :( \n misplaced cue points.");
                } else if(data == 1) {
                  $("#form4").attr("action", "http://localhost/profile_book/login_key.php")[0].submit();
                } else if(data == 2) {    
                  alert("enter cue-points");
                } 
            }
        }); 
}

答案 1 :(得分:0)

在这里走出困境。假设你真的只是问为什么表单没有提交,在这种情况下它是因为你错过了表单提交:

var form = document.getElementById("form4");
form.action = "http://localhost/profile_book/login_key.php";
form.submit()