php - 当我从 php 和 javascript 表单中获取值时,确认框不起作用

标签 php javascript

这对我来说似乎很奇怪,但是当我调用该函数时,我的弹出确认框将起作用,但是当我尝试从我的 php 代码中的表单中获取值时,弹出框根本不起作用!

javascript:

function ConfirmBox(){
    cert = cValForm.elements["cVal"].value;
    answer = confirm("Are you sure you want to delete " + cert + " and all of its courses?");
     if (answer){
         alert("Entry Deleted");
     }
     else{
         alert("No action taken");
     }             
}

PHP:

echo "<form name='cValForm'>";
echo "<input type='hidden' name='cVal' value='TEST' /> ";
echo "<input type='button' onclick='ConfirmBox()' value='Delete'/>";
echo "</form>";

一旦我注释掉该行:

cert = cValForm.elements["cVal"].value;

除了删除字符串中的证书值外,弹出窗口还可以正常工作。我从表格中得到的值(value)是错误的吗?或者我在这里完全错过了什么?谢谢!

最佳答案

我认为您的脚本中断了,因为它无法找到 cVal 字段的值。

更改您的 HTML 以使用 ID 和名称:

<form name='cValForm'>
  <input type='hidden' id="cVal" name='cVal' value='TEST' />
  <input type='button' onclick='ConfirmBox()' value='Delete'/>
</form>

然后首先检查 JavaScript,如果元素被选中:

function ConfirmBox(){
    var certField = document.getElementById( 'cVal' );
    var cert = certField ? certField.value : '';
    var answer = confirm("Are you sure you want to delete " + cert + " and all of its courses?");
     if (answer){
         alert("Entry Deleted");
     }
     else{
         alert("No action taken");
     }             
}

此外,您应该在所有变量声明中添加关键字var,以将这些变量的作用域限制在局部函数中。在您的情况下,这些变量将是全局变量,这可能会产生一些副作用。

关于php - 当我从 php 和 javascript 表单中获取值时,确认框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700132/

相关文章:

javascript - (未知网址)Angular 4 的 Http 失败响应

php - sql查询选择一个名字,不管它在中提到了多少行

java - "Should I use multiple indices in Solr?"和其他一些快速 Q

javascript - 使用 JQuery 触发浏览器下载

javascript - HTML 中的样式宽度与宽度属性

PHP 排名和选择操作

php - 在我的主目录中安装 PHP

javascript - Bootstrap 模式加载时触发事件

javascript - 找到SVG路径的方向

javascript - 如何从外部URL获取JSON数据