我有一个输入类型=图像的表单。它曾经在其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>
答案 0 :(得分:0)
如果我可以'打开'
的输入,那会更好
不可能,抱歉。你只能添加另一个控件来假装它(例如隐藏输入,或者如果你使用AJAX则直接参数)。
我尝试将输入的值设置为on,但似乎没有发布。
它是如何失败的?对于图像输入,您需要在字段名称中包含.x
和.y
后缀,因为这是浏览器通过位置传递图像的功能。例如
<input type="hidden" name="submit.x" value="1" />
<input type="hidden" name="submit.y" value="1" />
代码正在寻找输入...
您是否可以修复代码以删除该要求?