这对我来说似乎很奇怪,但是当我调用该函数时,我的弹出确认框将起作用,但是当我尝试从我的 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/