使用OnClientClick和OnClick事件?

时间:2013-10-31 23:24:54

标签: c# jquery asp.net docusignapi

我遇到客户访问网站以完成网络表单的情况,并且在提交/单击asp按钮时会执行两个操作:

1)运行一个jquery脚本,将嵌入式表单的iframe打开到第三方服务,该服务通过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);

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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