这让我很生气。我的页面上有一个div,在彩盒中打开。当用户单击div中的一个链接时,它会向代码(下面)发出一个事件,该代码应依次填充隐藏字段,然后单击服务器按钮以运行一些代码。
问题是,在IE(9)中,它不会在第一次尝试时单击服务器按钮(是的,它会进入客户端点击事件)。奇怪的是,它似乎在Chrome和FF中运行良好。
$(document).on('click', '.link', function (e) {
e.preventDefault();
var thisID = $(this).attr('href').replace('#ca', '');
$("#hiddenField").val(thisID );
$("#button1").submit();
});
值得一提的是,在colorbox中打开的div中的链接是动态填充的。但这应该会影响它,因为链接上的点击事件工作正常。
任何帮助都将不胜感激。
答案 0 :(得分:1)
似乎正确的形式是使用.trigger()
触发按钮提交,而不是提交。根据定义,.submit()没有任何附加参数镜像.trigger('submit')这是你在表单上运行的,而不是按钮。
例如:$("#button1").trigger("click");
对我来说,提交表单更合乎逻辑的方法是完全绕过按钮而.submit()实际表单本身。可能有理由说明你为什么不这样做,但它似乎更直接而不是依赖于一个可能被用户“搞砸”的元素。
答案 1 :(得分:0)
e=e?e:window.event;
if($.browser.msie)
{
e.returnValue=false;
e.cancelBubble=true;
}
else
{e.preventDefault();}
答案 2 :(得分:0)
请改为尝试:
$(document).ready(function() {
$('.link').click(function (e) {
e.preventDefault();
var thisID = $(this).attr('href').replace('#ca', '');
$("#hiddenField").val(thisID);
$("#button1").submit();
}
)});
答案 3 :(得分:0)
这是[小提琴] [1]的答案。它适用于所有浏览器。
我的代码似乎没有任何问题
刚刚在文档就绪函数中移动了代码