javascript在警告框中单击“确定”后重定向提交的表单

时间:2015-07-30 16:49:14

标签: javascript

我有一张表格

onclick确认,我需要将其指向特定网址

function submitdata() { 
     if(confirm("Are You Sure You Want To Proceed?")) {
        location.replace("http://www.w3schools.com");
    } else { 
        alert("Cancelling"); 
    }

}
</script>

提交此表单后,将调用submitdata()。

然后我收到警报。

但是我的表格没有被重定向

<form id="registration_form" action="" method="post" onsubmit="return submitdata();">

        <div id="state"></div>


         <div class="reg-id">
            <label>
                <input placeholder="State:" type="text" tabindex="3" name="user_state" id="reg_state" value="">
            </label>

        </div>

        <div class="reg-id">
            <label>
                <input placeholder="City:" type="text" tabindex="3" name="user_city" id="reg_city" value="">
            </label>
        </div>

         <div class="reg-id-last">
            <label>
                <input placeholder="Zip/Postal:" type="text" tabindex="3" name="user_zip" id="reg_zip" value="">
            </label>
        </div>
            <input type="submit" value="Response" tabindex="3" name="reg_btn" id="id-submit">
        </div>

    </form>

3 个答案:

答案 0 :(得分:2)

 if(confirm("Are You Sure You Want To Proceed?")) {
    return true; 
    location.replace("http://www.w3schools.com");
 }

return从周围的函数返回。什么都不会被执行。你需要交换这两行。

答案 1 :(得分:0)

我明白了

$("#place").change(function(){

   if($(this)[0].checkValidity()) // <<<< check for validity of the DOM element, thats why we use [0]
   {

      $('#book-modal').modal(); // if so run the modal window      
   } 
});

答案 2 :(得分:-1)

如果您希望表单实际提交到该位置,则表单数据将不会与该重定向一起发送。您可以通过将action标记的form属性设置为所需的网址,并将表单提交事件更改为以下内容来提交数据:

function submitData(event) {
  if(confirm('Are you sure you want to proceed?') == false){
    event.preventDefault();
    return false;
  }
}

因此,当用户点击“确定”时,不是重定向,如果用户没有点击“确定”,您基本上只需取消表单提交。

如果你不想提交数据,那么你只需要移动你的return语句,就像melpomene建议的那样。

注意:我总是同时写event.preventDefault()return false;,但我认为通常只有return false;才能正常工作。但是,比抱歉更安全:)