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

时间:2009-10-07 19:57:01

标签: javascript html image forms input

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

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

我可以使用带有旧名称的隐藏字段并将其设置为打开以绕过该问题,但这似乎很狡猾。什么是好的,如果我可以'打开输入'而不触发onclick(递归灾难)。也许不是灾难,但不是性感。我试图将输入的值设置为on,但它似乎没有发布。

有什么想法吗? 附:我不使用.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>

1 个答案:

答案 0 :(得分:0)

  

如果我可以'打开'

的输入,那会更好

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

  

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

它是如何失败的?对于图像输入,您需要在字段名称中包含.x.y后缀,因为这是浏览器通过位置传递图像的功能。例如

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

代码正在寻找输入...

您是否可以修复代码以删除该要求?