防止在onsubmit事件中提交表单

Chris Bao

在我的项目中,我具有如下的JS和HTML代码:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>

function myFunction() {
    //document.getElementById('demo').innerHTML = Date();
    alert("done");
    var a = parseInt(document.getElementById('number1').value);
    var b = parseInt(document.getElementById('number2').value);
    var c = a + b;
    $.get('/_add_numbers',{number: c}, function(data,status){
        res = JSON.parse(data);
        alert(status);
        $("#feedback").text("change");
        alert("show");
    });
};

</script>
</head>
<body>
<h1>My First JavaScript V2</h1>
<p id="demo"></p>
<form onsubmit="myFunction()">
    <input type="text" size="5" name="a" id = "number1"> +
    <input type="text" size="5" name="b" id = "number2"> =
    <span id="result">?</span>
    <br>
    <input type="submit" value="calculate server side" >
</form>
<p id="feedback">feedback</p>
</body>
</html> 

警报显示状态为成功。

该段的内容变为“更改”,但最终更改为原始的“反馈”。那是什么原因呢?

韦斯利·史密斯

内容没有变回原样实际上,正在提交表单,并且实质上是在刷新页面。

您需要调用.preventDefault();Submit事件以防止表单提交,如下所示:

function myFunction(evt) { 
  evt.preventDefault();

  // ... other code
};

或者更好的是,完全放弃表单,将更type="submit"改为type="button",然后将事件处理程序附加到按钮,如下所示:

<body>
  <h1>My First JavaScript V2</h1>
  <p id="demo"></p>
  <input type="text" size="5" name="a" id="number1"> +
  <input type="text" size="5" name="b" id="number2"> =
  <span id="result">?</span>
  <br>
  <input type="button" class="calculate" value="calculate server side">
  <p id="feedback">feedback</p>
</body>


$(function() {
  $('.calculate').click(function() {
    alert("done");
    var a = parseInt(document.getElementById('number1').value);
    var b = parseInt(document.getElementById('number2').value);
    var c = a + b;
    $.get('/_add_numbers', {
      number: c
    }, function(data, status) {
      res = JSON.parse(data);
      alert(status);
      $("#feedback").text("change");
      alert("show");
    });
  });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止通过ID在jQuery中提交表单

来自分类Dev

无法在首次点击事件中提交表单

来自分类Dev

表单未在委托事件中提交

来自分类Dev

无法在首次点击事件中提交表单

来自分类Dev

防止在React中提交表单时再次单击

来自分类Dev

在MVC4中的下拉更改事件中提交表单

来自分类Dev

在表单提交事件中防止.Net Core远程验证

来自分类Dev

在 AngularJS 中提交表单?

来自分类Dev

防止表单提交(javascript)

来自分类Dev

防止双击表单提交

来自分类Dev

防止多表单提交

来自分类Dev

防止表单提交的Javascript

来自分类Dev

使用onsubmit同时提交表单和Ajax?

来自分类Dev

有什么办法可以防止在MVC 5中提交表单?

来自分类Dev

onsubmit方法与提交事件侦听器

来自分类Dev

获取提交按钮值 onsubmit 事件

来自分类Dev

在WebBrowser中提交HTML表单

来自分类Dev

在angularjs中提交动态表单

来自分类Dev

表单在opencart中提交

来自分类Dev

在Rails中提交多个表单

来自分类Dev

无法在JSP中提交表单

来自分类Dev

表单未在laravel中提交?

来自分类Dev

防止按钮提交表单onclick

来自分类Dev

如何防止冒泡的表单提交

来自分类Dev

防止在jQuery表单上提交

来自分类Dev

如何防止冒泡的表单提交

来自分类Dev

防止表单提交直到验证

来自分类Dev

如何触发HTML表单的onsubmit事件?

来自分类Dev

如何从 onSubmit 事件中获取表单的名称?