输入类型=图像“打开”,没有 onclick 事件

问题描述 投票:0回答:1

我有一个输入类型=图像的表单。 它曾经在其 onclick 中有一个确认,返回 true/false 允许/停止表单提交。 我最近“升级”到带有回调处理程序的非模式对话框。

由于回调处理程序是非模态的,所以输入的返回值始终为 false,不要提交...当我确认提交时,输入的名称不在表单上,因为从技术上讲它不是点击。 这就是问题所在,代码正在寻找要打开的输入...

我可以使用带有旧名称的隐藏字段并将其设置为打开来绕过该问题,但这似乎很笨拙。 如果我可以“打开输入”而不触发 onclick (递归灾难),那就太好了。 也许不是一场灾难,但并不性感。 我尝试将输入的值设置为打开,但似乎没有发布。

有什么想法吗? 附:我没有使用 .NET,因此涉及 ASP.NET 的解决方案不适用:-(

我正在添加示例代码。 单击 Foo! 时,您会注意到地址栏中有 Foo.x=0 和 Foo.y=0。 单击栏,您什么也得不到。 我希望能够将栏放在 BarCallback 内的表单上。

代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
  <script language="javascript" type="text/javascript">
    function Bar() {
      setTimeout(BarCallback, 500);
      return false;
    }

    function BarCallback() {
      document.getElementById('TheForm').submit();
    }
  </script>
</head>

<body>
  <form method="get" id="TheForm">
    <input type="image" alt="Foo!" name="Foo" />
    <br />
    <input type="image" alt="Bar!" name="Bar" onclick="return Bar();" />
  </form>
</body>

</html>

javascript html image forms input
1个回答
0
投票

如果我可以“打开输入”,那就太好了

不可能,抱歉。您只能添加另一个控件来假装它是(例如,隐藏输入,或者如果您使用 AJAX,则直接参数)。

我尝试将输入的值设置为on,但似乎没有成功。

怎么失败了?对于图像输入,您需要在字段名称中包含

.x
.y
后缀,因为浏览器就是通过这种方式传递带有位置的图像点击。例如。

<input type="hidden" name="submit.x" value="1" />
<input type="hidden" name="submit.y" value="1" />

代码正在寻找要打开的输入...

您不能修复代码以删除该要求吗?

© www.soinside.com 2019 - 2024. All rights reserved.