使用 html 和 javascript 来允许是不是调用表单操作不起作用(在 php 中回显)

Posted

技术标签:

【中文标题】使用 html 和 javascript 来允许是不是调用表单操作不起作用(在 php 中回显)【英文标题】:Using html and javascript to allow whether a form action gets called or not is not working (echoed in php)使用 html 和 javascript 来允许是否调用表单操作不起作用(在 php 中回显) 【发布时间】:2022-01-18 00:44:01 【问题描述】:

我最初有一些用 php/html 编写的代码,当单击按钮时,表单操作会将用户带到名为 delete.php 的 PHP 页面。

现在我想在 javascript 中添加一个函数,询问用户是否确定在单击按钮后执行该操作,但我不确定如何不让 PHP 表单提交表单用户选择取消时的操作。

这是代码:

    #delete buttons    previous code: <form action='delete.php' method='post'>
    echo "<form onsubmit='return setAction(this)' method='post'>";
    echo "<td> <button onclick='askConfirm()' type='submit' name='deleteItem' value='" . $line['productCode'] . "' />Delete</button></td>";
    echo "</form>";

    # end table row and loop
    echo "</tr>";
    
    # javascript
    echo '<script type="text/javascript">

    function setAction()

      if (confirm("Are you sure you want to delete this?") == true) 
        form.action = "delete.php";

       
      else 
        return false;
      
    

    </script>';

【问题讨论】:

【参考方案1】:

解决方案其实很简单。如果取消确认对话,此onsubmit 属性将阻止表单提交。

<form action="delete.php" onsubmit="return confirm('Do you really want to submit the form?');" method="post">
    <input type="submit" name="submit">
</form>

【讨论】:

那我会删除 setAction() 吗?不太确定如何在我拥有的代码中实现这一点 是的,你不需要它,因为它不会被调用。我的解决方案中的onsubmit 负责处理confirm(); 和表单提交。 谢谢!所以我删除了脚本里面的东西,现在只有: echo "
"; echo " 删除";但是每当我单击一个按钮时,它只会直接删除记录,而不是显示为确认框
问题出在您的引用中,特别是 onsubmit 属性:'return confirm('Do you really want to submit the form?');'。第二个引用是关闭您的引用,以便Do you really want to submit the form? 不被引用,并且后面的任何内容都不是您的属性的一部分。我建议对 HTML 属性使用双引号。如果需要,您可以使用反斜杠来转义引号。这就是它的外观:echo '&lt;form action="delete.php" onsubmit="return confirm(\'Do you really want to submit the form?\');" method="post"&gt;';. 成功了,非常感谢!!

以上是关于使用 html 和 javascript 来允许是不是调用表单操作不起作用(在 php 中回显)的主要内容,如果未能解决你的问题,请参考以下文章

React Native 使用啥来允许 JavaScript 在 iOS 和 Android 上本地执行?

Blazor是春天还是寒风里的挣扎

JavaScript - 倒计时

通过与javascript中的今天日期进行比较来允许今天的日期和未来的日期

javascript控制input只允许输入数字

javascript控制input只允许输入数字