【问题标题】:form.submit() not workingform.submit() 不工作
【发布时间】:2017-12-28 05:40:27
【问题描述】:

我需要做一些事情来使用 ruby​​ cgi 来输出一些东西。 因此必须先提交表单,然后再提交 js 以更改元素值。 在我的情况下,使用 form.submit() 不起作用。

使用下面的简单示例在提交表单后输出点击我的值。 当form.submit()函数运行时,点击我的js将不起作用。

表单的onsubmit方法不能使用,因为它在提交表单之前先调用javascript函数(必须先提交表单然后调用JS函数进行操作)

解决这个问题的任何想法: 注意:必须先提交

$(document).on('click','#afterbutton',function() {
    var form = document.getElementById("myForm");
    //form.submit();
    document.getElementById("test").innerHTML = "afterbutton";
    
    });
    
     $(document).on('click','#beforebutton',function() {
    var form = document.getElementById("myForm");
    //form.submit();
    document.getElementById("test").innerHTML = "beforebutton";
    
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
     <input type="submit" value="formSubmitbutton" id="submit"><br>
     <button id="beforebutton">beforebutton</button><br>
     </form>
     <button id="afterbutton">afterbutton</button><br>
     <p id="test">click me</p>

【问题讨论】:

  • 打开表单标签不完整。
  • 我现在读了这个问题......看来你最好使用ajax。提交表单,然后当你得到一个响应码(当你知道它已经提交时),你可以做另一个动作。
  • 不幸的是,这无法实现,因为我使用的是纯 Ruby。需要使用 ruby​​ CGI 作为某种“服务器脚本”。
  • 您在问题的标签中没有 RUBY,那么任何人都应该知道这一点吗?
  • 这很复杂。我使用的是 RUby CGI,需要先提交表单,CGI 才能接收输入的复选框值。所以我只是使用一个简单的问题示例来如果可以实现,请寻求帮助。

标签: javascript jquery html forms


【解决方案1】:

好的,简单的问题,当您输入 id submit 时,您会犯一个简单的错误,如果您查看控制台中的 form.submit 方法,则会覆盖 form.submit 方法strong>devtool 你会看到一些东西告诉你

form.submit is not a function 

所以要解决这个问题,请将您的第一个 input 而不是 submit 的 id 更改为 submit123

之类的其他内容
<input type="submit" value="formSubmitbutton" id="submit123"><br>

看看下面的代码,告诉我你的想法

$(document).on('click','#afterbutton',function(event) {
    event.preventDefault();
    var form = document.getElementById("myForm");
    form.submit();
    document.getElementById("test").innerHTML = "afterbutton";
    
    });
    
     $(document).on('click','#beforebutton',function(event) {
     event.preventDefault();
    var form = document.getElementById("myForm");
    form.submit();
    document.getElementById("test").innerHTML = "beforebutton";
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
     <input type="submit" value="formSubmitbutton" id="submit123"><br>
     <button id="beforebutton">beforebutton</button><br>
     </form>
     <button id="afterbutton">afterbutton</button><br>
     <p id="test">click me</p>

【讨论】:

  • 不幸的是,当单击此处更改为所需的输出值时,它又变回了单击此处的值。知道为什么属性值会变回原始值吗?
  • 问题是当您提交表单时,浏览器会重新加载,并且每个值都会恢复到默认值,因此您需要防止默认行为,并且这个 google 有很多模式
猜你喜欢
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多