我的表单中有一个提交按钮,我没有使用onsubmit事件,因为我要在同一个表单中添加更多提交按钮。所以我这样做:
<script type="text/javascript" src="../script/script.js"></script>
<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data">
<input type="submit" id="submit1" value="Add" onclick="return confirmMessage();"/>
</form>
function confirmMessage()
{
var x = confirm("...");
if(x)
{
document.getElementById("my_post_value").value = "val1";
return true;
}
return false;
}
我正在使用最新版本的Firefox,IE和Google Chrome,但在Chrome中,onclick事件无效。
答案 0 :(得分:0)
而不是onclick
按钮的submit
属性,onsubmit
<form>
<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data" onsubmit="return confirmMessage();">
<input type="text" name="email" id="email">
<input type="submit" id="submit1" value="Add"/>
</form>
尝试按以下步骤更换代码
float: left;
答案 1 :(得分:0)
它在我的Chrome中工作正常,我在使用提交按钮上的事件时从未遇到任何问题,但由于您使用的是外部js文件,因此您可能希望尝试使用纯文本js解决方案,而不是内联:
见下面的例子:
function confirmMessage() {
var x = confirm("Click OK to submit form");
if (x) {
return true;
}
return false;
}
document.getElementById('submit1').onclick = function() {
return confirmMessage();
};
&#13;
<form id="form_cad" action="my_php.php" method="post" enctype="multipart/form-data" onsubmit="alert('submitting')">
<input type="submit" id="submit1" value="Add" />
</form>
&#13;
表单onsubmit
中的提醒仅用于说明事件实际上仅在confirm()
返回true
时被调用。
答案 2 :(得分:0)
因为你进入一个表单,onsubmit事件会自动触发,一种方法是在调用confirmMessage()之后停止它,返回false。这阻止了事件的传播:
<form id="form_cad" action="my_php.php" method="post"
enctype="multipart/form-data" onclick="confirmMessage(); return
false;">
<input type="text" name="email" id="email">
<input type="submit" id="submit1" value="Add"/>
</form>
答案 3 :(得分:0)
我有一个类似的问题,但我修复了它在“ onclick”功能内启动提交事件的问题。在使用Firefox的情况下,我还阻止了该事件以防止两次启动该事件:
submit_button.click(function(event){
event.preventDefault();
var selected_file = $("#id-file-to-upload").val();
if (selected_file) {
submit_button.prop('disabled', true);
submit_button.prop('value', "Loading");
}
var upload_form = $("#id-form-to-submit");
upload_form.submit();
});