2013-10-31 54 views
-1

我有情况:客户端程序访问网站时完成的表单,在提交/点击一个asp按钮执行两种行为:使用OnClientClick和OnClick事件?

1)运行打开一个嵌入式形式的iframe到第三方jquery的脚本服务,通过由jQuery创建的URL也获得信息(在这种情况下,docusign)

2)运行一个方法来插入关于提交到sql数据库表的特定数据。

这是我的理解,OnClient必须在OnClick之前触发,以及如果我理解正确需要某种返回/回发来触发onclick/severside方法。所以我的困难一直在试图理解如何最好地使用服务器端方法来激发......任何想法都将不胜感激。起初以为增加某种返回真正的功能,但没有看到这将如何工作。感谢您的任何意见和前瞻性指导。

因此,目前我的ASP按钮OnClientClick调用下面的jQuery打开一个iframe ......我不知道如何也让它回发导致Onclick事件触发?除非我可以从后面调用jquery fire?

(使用jQuery来打开/嵌入形式)

function $$(elem) {return document.getElementById(elem);} //simple id reference 

//Powerform/Iframe Specifics 

number_messages = 0; 
var last_id = ""; 

function check_messages() { //check for messages from iframe 
if (location.hash != last_id) { 
    last_id = location.hash; 
    number_messages++; 
    last_id = last_id.replace("_"," "); 
    last_id = last_id.substr(1); 
    last_id = last_id.substr(0,last_id.indexOf("&")); 
    var message_color; 
    var extra_text; 
    if(last_id=="Signing Complete" || last_id=="Viewing Complete"){ 
     message_color="green"; 
     extra_text = ""; 
    }else{ 
     message_color="red"; 
     extra_text = "<p style='text-align:center'><button type='form.button' onclick='window.location=\"embedded.html\"' style='display:inline;'>Reload form?</button></p>"; 
    } 
    document.getElementById("powerform").innerHTML = "<center><h3 style='color:"+message_color+";border:none;font-size:20px;text-align:center;'>" + last_id + "</h3><br/>"+extra_text+"</center>"; 
} 
} 

function open_embeddedform(form) { 
var form_url = "https://demo.docusign.net/MEMBER/PowerFormSigning.aspx"; 
form_url += "?PowerFormId=" + $$("Powerformid").value; 
form_url += "&UserName=" + $$("UserName").value; 
form_url += "&UserEmail=" + $$("UserEmail").value; 

    //alert(form_url); 

$$("powerform").innerHTML = '<iframe id="document" src="' + form_url + '" border="0"></iframe>'; 
} 

setInterval(check_messages, 200); 
+0

这是很多代码来通过。你能把它降低到解释问题所需的最低限度吗? –

回答

0

你能运行在服务器端作为客户端发送一个Ajax请求有关提交信息的PageMethod的或Web服务?这样,您也可以向用户返回成功以显示一些完成消息。

0

确保任何Onclientclick调用返回true。查看This post了解更多详情。

+0

我已经尝试在函数的末尾添加这种性质的东西,但它不希望返回true。我不确定它是否与iframe相关,并使用另一个服务器/ url,它具有我不知道的一组事件。我很欣赏链接和协助。谢谢 –

+0

您是否尝试过使用返回true的本地函数来确保onclientclick按照您的期望触发?同时确保在使用网页表单时只有一个表单标签。 –

+0

我有..但没有运气。尝试将它添加到当前函数中,将它分离为两个函数,甚至尝试 - 这很可能是糟糕的编程 - 创建一个单独的不可见按钮,并触发它,但没有运气,因为iframe停止/不加载或者服务器端方法执行不开火。再次感谢您跟进另一个想法/想法。干杯 –