提交表单不适用于确认框
submit form not working with confirm box
我正在尝试创建一个动态生成的场景
这是我的 javascript 代码:
function confirmDelete( varForm ) {
var r = confirm("Are you sure you wish to delete this entry?");
if (r == true) {
document.getElementById("form" + varForm).submit();
}
}
这是我的 php/html 代码:
<form name="form<?php echo $x . $y; ?>" id="form<?php echo $x . $y; ?>" action="/index.php" method="post">
<a href="#" onclick="confirmDelete(<?php echo $x . $y; ?>); return false;"><p><?php echo $aryClientInfo[$x][1][$y * 3]; ?></p></a>
<input type="hidden" name="values<?php echo $x; ?>" value="<?php echo ($y * 3) . ',' . ($y * 3 + 1) . ',' . ($y * 3 + 2); ?>">
</form>
它似乎没有提交表单,我不知道为什么(我已经验证了表单名称和 javascript 函数输入变量匹配)。我已经发现该函数确实被调用并且确认框确实按预期工作。 $x 和 $y 是从 MySQL 数据库生成多个链接的 for 循环的一部分。
你的错误是你传递的 varForm
没有引号,试试这个:
<form name="form<?php echo $x . $y; ?>" id="form<?php echo $x . $y; ?>" action="/index.php" method="post">
<a href="#" onclick="confirmDelete('<?php echo $x . $y; ?>'); return false;"><p><?php echo $aryClientInfo[$x][1][$y * 3]; ?></p></a>
<input type="hidden" name="values<?php echo $x; ?>" value="<?php echo ($y * 3) . ',' . ($y * 3 + 1) . ',' . ($y * 3 + 2); ?>">
</form>
而不是
onclick="confirmDelete(<?php echo $x . $y; ?>); return false;"
应该是:
onclick="confirmDelete('<?php echo $x . $y; ?>'); return false;"
这是一个没有嵌入 php 代码的有效 jsfiddle,它可能对您有帮助:
https://jsfiddle.net/eq0ggxkf/
<body>
<form name="form123" id="form123" action="/index.php" method="post">
<a href="#" onclick="confirmDelete('123'); return false;"><p>some content</p></a>
<input type="hidden" name="values" value="secret">
</form>
hello
</body>
<script>
function confirmDelete( varForm ) {
var r = confirm("Are you sure you wish to delete this entry?");
if (r == true) {
document.getElementById("form" + varForm).submit();
}
}
</script>
我正在尝试创建一个动态生成的场景
这是我的 javascript 代码:
function confirmDelete( varForm ) {
var r = confirm("Are you sure you wish to delete this entry?");
if (r == true) {
document.getElementById("form" + varForm).submit();
}
}
这是我的 php/html 代码:
<form name="form<?php echo $x . $y; ?>" id="form<?php echo $x . $y; ?>" action="/index.php" method="post">
<a href="#" onclick="confirmDelete(<?php echo $x . $y; ?>); return false;"><p><?php echo $aryClientInfo[$x][1][$y * 3]; ?></p></a>
<input type="hidden" name="values<?php echo $x; ?>" value="<?php echo ($y * 3) . ',' . ($y * 3 + 1) . ',' . ($y * 3 + 2); ?>">
</form>
它似乎没有提交表单,我不知道为什么(我已经验证了表单名称和 javascript 函数输入变量匹配)。我已经发现该函数确实被调用并且确认框确实按预期工作。 $x 和 $y 是从 MySQL 数据库生成多个链接的 for 循环的一部分。
你的错误是你传递的 varForm
没有引号,试试这个:
<form name="form<?php echo $x . $y; ?>" id="form<?php echo $x . $y; ?>" action="/index.php" method="post">
<a href="#" onclick="confirmDelete('<?php echo $x . $y; ?>'); return false;"><p><?php echo $aryClientInfo[$x][1][$y * 3]; ?></p></a>
<input type="hidden" name="values<?php echo $x; ?>" value="<?php echo ($y * 3) . ',' . ($y * 3 + 1) . ',' . ($y * 3 + 2); ?>">
</form>
而不是
onclick="confirmDelete(<?php echo $x . $y; ?>); return false;"
应该是:
onclick="confirmDelete('<?php echo $x . $y; ?>'); return false;"
这是一个没有嵌入 php 代码的有效 jsfiddle,它可能对您有帮助:
https://jsfiddle.net/eq0ggxkf/
<body>
<form name="form123" id="form123" action="/index.php" method="post">
<a href="#" onclick="confirmDelete('123'); return false;"><p>some content</p></a>
<input type="hidden" name="values" value="secret">
</form>
hello
</body>
<script>
function confirmDelete( varForm ) {
var r = confirm("Are you sure you wish to delete this entry?");
if (r == true) {
document.getElementById("form" + varForm).submit();
}
}
</script>