<input type="submit" class="sub" onClick="exefunction2()" id="button">
当我单击提交按钮时onClick
不起作用。我怎样才能解决这个问题?我需要在提交表单时进行此操作,因为onClick
事件包含值。
<input type="submit" class="sub" onClick="exefunction2()" id="button">
当我单击提交按钮时onClick
不起作用。我怎样才能解决这个问题?我需要在提交表单时进行此操作,因为onClick
事件包含值。
最好的方法是在表单标签上调用你的方法,如下所示:
<form onsubmit="return exefunction2();">
...
</form>
退货false
不会提交表格,true
会提交!
要发布更多数据(使用 exefunction2 构建),您可以使用它
<script type="text/javascript">
function exefunction2(form) {
//add dynamic values
var dynValues = {
"val1": 1,
"val2": "bla"
};
for(var name in dynValues) {
//check if field exists
var input = null;
if(document.getElementsByName(name).length === 0) {
input = document.createElement('input');
input.setAttribute('name', name);
input.setAttribute('type', 'hidden');
form.appendChild(input);
}
else {
input = document.getElementsByName(name)[0];
}
input.setAttribute('value', dynValues[name]);
}
return true;
}
</script>
<form onsubmit="return exefunction2(this);">
<input type="submit" />
</form>
W3学校在这里有一个很好的解释:http: //www.w3schools.com/js/js_validation.asp
基本上,提交在执行任何操作之前都会等待来自 onClick 的返回值。如果你愿意,你也可以连接一个 confirm() 请求。如果表单验证,只需编写类似 return confirm("continue")
. 这是一个老问题,但我希望它可以帮助任何偶然发现它的人。失败的另一个重要原因是脚本中的错误。不幸的是,除非您在浏览器中运行调试器,否则很难知道是否有任何东西使您的脚本崩溃。打开浏览器调试器有助于跟踪任何问题。在 Chrome 中,您可以使用 CTRL-SHIFT-I 用于 Windows 或 CMD-OPTION-I 用于 Mac。如果您暂停捕获的错误,您会发现任何过早停止脚本的语法或致命错误。
您可以使用 Javascript 提交表单。
<form id="form_id" ...>
<input type="button" class="sub" onclick="exefunction2();" id="button">
Javascript:
function exefunction2() {
...
document.forms["form_id"].submit();
}
好吧,我不知道这是否是“官方”预期的行为,但这就是它的工作原理:如果您向其添加 onclick Javascript 函数,则提交类型的按钮将不再提交。只需让函数也提交表单或让函数返回 false
试试<form onSubmit="exefunction2()">
。
同意@silly,我使用了同样的想法。我正在分享实施。我的目标是,禁用用于提交表单的“执行”按钮,直到收到响应,然后再次启用“执行”按钮。我正在使用 Flask 。
我的表格:
<form onsubmit="return disableExecuteButton();" method="POST" action="/dothis">
.....
</form>
我的 JS:
function disableExecuteButton(){
var executeButton = document.getElementById("executeButton");
executeButton.setAttribute("disabled","disabled");
return true;
}
function reactivateExecuteButton(){
var executeButton = document.getElementById("executeButton");
executeButton.setAttribute("disabled","enabled");
}
从 Flask,我返回:
return render_template('result.html', message=message, error=error, html_content=result, history=session['actions_taken'], done=True)
"done=True" 是我用来表示已收到响应并且我们需要再次启用该按钮的内容。
要重新启用按钮:
{% if done %}
<script type="text/javascript">
reactivateExecuteButton()
</script>
{% endif %}
将事件改为onsubmit,返回false,避免表单提交。
<input type="submit" class="sub" onsubmit="exefunction2();return false;" id="button">