我需要做一些事情来使用ruby cgi输出一些东西。 因此必须首先提交表单,然后提交js以更改元素值。 使用form.submit()在我的情况下不起作用。
使用下面的简单示例在提交表单后输出click me值。 当运行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>
答案 0 :(得分:1)
确定简单的问题,如果你在<\ n>提交来覆盖 form.submit 方法,如果你在<强> devtool 你会看到一些告诉你的事情
form.submit is not a function
所以要解决此问题,请将您的第一个输入的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";
});
&#13;
<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>
&#13;