Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止表单提交的JavaScript代码_Javascript_Html_Forms - Fatal编程技术网

停止表单提交的JavaScript代码

停止表单提交的JavaScript代码,javascript,html,forms,Javascript,Html,Forms,停止表单提交的一种方法是从JavaScript函数返回false 单击submit按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用名为returnToPreviousPage()的函数 function returnToPreviousPage() { window.history.back(); } 我正在使用JavaScript和 与其返回上一页,不如提交表单。如何中止此提交并返回到上一页?使用“防止默认值” Dojo工具包 dojo.connect(form

停止表单提交的一种方法是从JavaScript函数返回false

单击submit按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用名为returnToPreviousPage()的函数

function returnToPreviousPage() {
    window.history.back();
}
我正在使用JavaScript和

与其返回上一页,不如提交表单。如何中止此提交并返回到上一页?

使用“防止默认值”

Dojo工具包

dojo.connect(form, "onsubmit", function(evt) {
    evt.preventDefault();
    window.history.back();
});
if (element.addEventListener) {
    element.addEventListener("submit", function(evt) {
        evt.preventDefault();
        window.history.back();
    }, true);
}
else {
    element.attachEvent('onsubmit', function(evt){
        evt.preventDefault();
        window.history.back();
    });
}
jQuery

$('#form').submit(function (evt) {
    evt.preventDefault();
    window.history.back();
});
香草JavaScript

dojo.connect(form, "onsubmit", function(evt) {
    evt.preventDefault();
    window.history.back();
});
if (element.addEventListener) {
    element.addEventListener("submit", function(evt) {
        evt.preventDefault();
        window.history.back();
    }, true);
}
else {
    element.attachEvent('onsubmit', function(evt){
        evt.preventDefault();
        window.history.back();
    });
}

只需使用一个简单的
按钮,而不是提交按钮。并调用JavaScript函数来处理表单提交:

<input type="button" name="submit" value="submit" onclick="submit_form();"/>

您也可以尝试
window.history.forward(-1)

您可以使用函数的返回值来阻止表单提交

<form name="myForm" onsubmit="return validateMyForm();"> 

和功能类似

<script type="text/javascript">
function validateMyForm()
{
  if(check if your conditions are not satisfying)
  { 
    alert("validation failed false");
    returnToPreviousPage();
    return false;
  }

  alert("validations passed");
  return true;
}
</script>

函数validateMyForm()
{
如果(检查您的条件是否不满足)
{ 
警报(“验证失败错误”);
returnToPreviousPage();
返回false;
}
警报(“通过验证”);
返回true;
}
如果是Chrome 27.0.1453.116 m,如果上述代码不起作用,请将字段设置为false以使其起作用

谢谢Sam分享信息

编辑:

感谢Vikram针对if validateMyForm()返回false的解决方法:

 <form onsubmit="event.preventDefault(); validateMyForm();">


其中validateMyForm()是一个函数,如果验证失败,它将返回false。关键点是使用名称事件。到目前为止,我们无法将以下功能用于e.preventDefault()

(在Chrome和Firefox中测试):



其中validateMyForm()是一个函数,如果验证失败,它将返回
false
。关键点是使用名称
事件
。例如,我们不能使用
e.preventDefault()

假设您有一个类似于此的表单

<form action="membersDeleteAllData.html" method="post">
    <button type="submit" id="btnLoad" onclick="confirmAction(event);">ERASE ALL DATA</button>
</form>

删除所有数据
下面是confirmation函数的javascript

<script type="text/javascript">
    function confirmAction(e)
    {
        var confirmation = confirm("Are you sure about this ?") ;

        if (!confirmation)
        {
            e.preventDefault() ;
            returnToPreviousPage();
        }

        return confirmation ;
    }
</script>

函数确认(e)
{
var确认=确认(“你确定吗?”);
如果(!确认)
{
e、 预防默认值();
returnToPreviousPage();
}
返回确认;
}
这一款适用于Firefox、Chrome、Internet Explorer(edge)、Safari等


如果不是这样,请让我知道

您所有的答案都提供了一些有用的信息

最后,这对我很有用:(如果你没有选择至少一个复选框项目,它会发出警告并保持在同一页中)




我喜欢
名字:
姓氏:
转换为大写字母
转换为小写字母
不要转换

数学 物理 化学
提交
赫曼特和维克拉姆的答案在Chrome上对我来说并不完全有效。event.preventDefault();无论验证是否通过,脚本都阻止页面提交。相反,我必须移动事件;输入if语句,如下所示:

    if(check if your conditions are not satisfying) 
    { 
    event.preventDefault();
    alert("validation failed false");
    returnToPreviousPage();
    return false;
    }
    alert("validations passed");
    return true;
    }

感谢Hemant和Vikram让我走上正轨。

例如,如果表单上有submit按钮,为了停止其传播,只需编写event.preventDefault();在单击“提交”按钮或“输入”按钮时调用的函数中。

许多简单的方法:

<form name="foo" onsubmit="return false">

简单地做

<form>
<!-- Your Input Elements -->
</form>

我建议不要使用
onsubmit
,而是在脚本中附加事件

var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
  submit.addEventListener("click", returnToPreviousPage);
} else {
  submit.attachEvent("onclick", returnToPreviousPage);
}
然后使用
preventDefault()


基于@Vikram Pudi-answer,我们也可以使用纯Javascript实现这一点

<form onsubmit="submitForm(event)">
    <input type="text">
    <input type="submit">
</form>

<script type="text/javascript">

    function submitForm(event){
        event.preventDefault();


    }
</script>

函数提交表单(事件){
event.preventDefault();
}

R是否确认此函数正在调用??尝试发出警报(“测试”);是的,我确信;我喜欢这种方法,因为它允许我的用例回调。这防止了使用enter键提交表单。另外,新的HTML5属性,如
required
也不起作用。只是猜测一下:在最新版本的Chrome中,它对我不起作用。任何返回
false
的属性似乎都没有任何效果;Chrome仍然提交表单。例如,
onsubmit=“return false;”
。但是,将事件处理程序的参数的
returnValue
字段设置为
false
对我来说确实有效。你好,Sam/Hemant,请提供代码示例,说明如何将事件处理程序的参数的returnValue字段设置为false。我认为,既然这是公认的答案,它可能会告诉我如何正确地执行此操作。我和JackDev都想知道如何让它正常工作。如果
validateMyForm()
出现错误,则此操作将不起作用
返回false
。所以这可能会失败。几个小时后,我找到了一个有效的解决方案,并将其发布在下面。我建议使用event.preventDefault()而不是return false。出于许多原因,这应该是最重要的答案:好答案。比所选的更好。很好,但是你会在哪里执行OP想要的验证?@acidjazz但是在阻止默认后如何访问表单数据?@Sahand@codeat30你可以访问事件
target
。对我来说也很有效。这个准确的答案(好,不准确,因为你的缺少分号)是在8个月前提交的,而且有充分的理由投反对票。这在大多数情况下都有效。但并非所有浏览器都需要分号;我指出,这就是你的答案和一个更老的答案之间的不同之处。事实上你
var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
  submit.addEventListener("click", returnToPreviousPage);
} else {
  submit.attachEvent("onclick", returnToPreviousPage);
}
function returnToPreviousPage (e) {
  e = e || window.event;
  // validation code

  // if invalid
  if (e.preventDefault) {
    e.preventDefault();
  } else {
    e.returnValue = false;
  }
}
<form onsubmit="submitForm(event)">
    <input type="text">
    <input type="submit">
</form>

<script type="text/javascript">

    function submitForm(event){
        event.preventDefault();


    }
</script>