2011-09-02 118 views
0

任何想法为什么preSaveAction只是重定向。它应该添加一条记录,然后将用户带到调查的谢谢页面。PreSaveAction未触发

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
// old handler: 
var oldHandler = function() { 
if (!PreSaveItem()) return false; 
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00_m_g_4bde870c_7fcd_4f61_b446_e287f846faf3_ctl00_toolBarTbltop_RightRptControls_ctl01_ctl00_diidIOSaveItem", "", true, "", "", false, true)); 
}; 
// remove old and add new handler: 
var newHandler = function() { 
if (!PreSaveItem()) return false; 
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00_m_g_4bde870c_7fcd_4f61_b446_e287f846faf3_ctl00_toolBarTbltop_RightRptControls_ctl01_ctl00_diidIOSaveItem", "", true, "", "", false, true)); 
window.location.replace("/surveys/Pages/ThankYou.aspx"); 
return true; 
}; 
$("#ctl00_m_g_4bde870c_7fcd_4f61_b446_e287f846faf3_ctl00_toolBarTbltop_RightRptControls_ctl01_ctl00_diidIOSaveItem").unbind('click', oldHandler).click(newHandler); 
}); 
</script> 
+1

在jquery-href开头的单引号只是一个错字吗? – Andreas

+0

...为什么在javascript函数中有一个输入按钮?你确定你的代码运行? –

+0

我把错字拿出来了。我认为代码运行是因为我在最后添加了一个警报,并且它已经升级了。 –

回答

0

您在脚本的jquery部分缺少'#'。当你通过id引用一个元素时,你必须在id前面加一个'#'。

$("#ctl00_m_g_f46a290b_d993_4347_a2da_868aff18de82_ctl00_toolBarTbltop_RightRptControls_ctl01_ctl00_diidIOSaveItem").unbind("click", oldHandler).click(newHandler); 

但我怀疑这个脚本会按预期运行,除非你删除“<输入... >”标签。至于我,Chrome和IE9都不能完成这项工作。只有FF6忽略标签。

+0

我更新了你说的代码,现在只有重定向部分工作。它应该添加一条记录,然后将用户带到谢谢页面。 –