在执行表单中的第二选项之前确认

问题描述:

我有一个表单,用户可以根据表单中选择哪个按钮来选择修改或删除数据库中的记录。如果我将它作为一个/或者它来放置,它会很好,但是我想在人们删除文件之前添加一个确认/警告,以防他们意外地点击了错误的按钮。但是,当我添加确认功能时,如果在警告中单击“确定”(它尝试执行通过单击第一个按钮调用的操作),则表单不再执行操作。如果在弹出的警告(它应该是)后弹出取消,则没有任何反应。但是,如果我删除了确认功能,两个按钮都可以正常工作(这使得更有可能有人不小心按错了按钮)。我在这里发现了很多关于如何通过单击执行动作的问题,但显然我不希望它立即执行,所以这些都没有帮助。在执行表单中的第二选项之前确认

下面是按钮,我想使工作代码:

<input type="submit" value="DELETE Selected Rows" onClick="return confirm('WARNING!! You are about to DELETE the selected rows; this action cannot be undone!'); submitForm('delete_record.php');"> 

不过,如果我只是有:

<input type="submit" value="DELETE Selected Rows" onClick="submitForm('delete_record.php')"> 

它工作正常。

试试这个

<input type="submit" id="submit-button" value="DELETE Selected Rows" onClick="if (confirm('WARNING!! You are about to DELETE the selected rows; this action cannot be undone!')) { submitForm('delete_record.php'); };"> 

不过,我会建议使用事件中使用的onclick属性绑定来代替。示例(更新基于意见通过@ sparrowhawk87给出新的信息):

<script> 
document.getElementById("my-form").addEventListener("submit", function(event){ 
     event.preventDefault(); 

    if (confirm('WARNING!! You are about to DELETE the selected rows; this action cannot be undone!')) { 
     alert("Execute submitForm() here."); 
    }; 
}); 
</script> 

(请注意,你需要所谓的“我型”的ID添加到您的表单标签,以使这个例子的工作。)

+0

尝试这两种方法 - 仍然执行第一个提交按钮的操作,现在它甚至在尝试执行之前不会要求确认。 – sparrowhawk87

+0

啊,好的。如果语法正确,则您的第一个(不是首选)建议将起作用。如果您将答案更改为: onClick =“if(confirm('警告!!您即将删除所选行;此操作无法撤消!'){submitForm('delete_record.php')}” 然后我会标记你的答案是正确的。哦,并删除第二个建议,它不起作用。 – sparrowhawk87

+0

这两种解决方案都适用于我...检查此https://jsfiddle.net/hbb59gpw/ – krani