繁体   English   中英

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

[英]javascript Redirect submitted form after clicking ok in the alert box

我有一个表格

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

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

}
</script>

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

然后我收到警报。

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

<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>
 if(confirm("Are You Sure You Want To Proceed?")) {
    return true; 
    location.replace("http://www.w3schools.com");
 }

return从周围函数返回。 之后什么也不会执行。 您需要交换两行。

我知道了

<script>

    function submitdata() { 
       var r = confirm('Are you sure?');

        if (r == true) {

            window.open('http://www.google.com');
        } else {
            alert('it didnt work');
        }
        return false;         

    }
    </script>

如果您希望表单实际提交到该位置,则表单数据将不会通过该重定向发送。 您可以通过以下方式提交数据:将form标记的action属性设置为所需的URL,然后将表单提交事件更改为类似以下内容:

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; 也会工作。 但是,比后悔更安全:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM