如何在单个事件中调用两个函数,一个为JavaScript函数,另一个为服务器端函数。

3

我想在同一事件上调用两个函数,一个是客户端函数,另一个是服务器端函数。如何实现呢?

 <input type="text" ID="txtUserName" runat="server" maxlength="50"
                            class="DefaultTextbox" style="width:180px;" value="" 
                            onfocus="ControlOnFocus('', this, spanUserName);"
                            onblur="ControlOnBlur('',this, spanUserName); "
                            />

onblur="ControlOnBlur(); function2();

这个正确吗?

(该代码为HTML中的一个事件处理程序,当离开输入框时会触发两个函数:ControlOnBlur()和function2()。)
onblur="ControlOnBlur(); function2();

我认为这可能会对你有所帮助,[https://dev59.com/-W855IYBdhLWcg3wHweH] - Emmanuel Angelo.R
3个回答

3

没错,事实上在HTML中内联定义事件并不是很好的做法,但它确实可行。在onblur=""中的所有内容都被视为一个长的JavaScript代码块,因此您可以在其中编写任何内容,甚至整个程序。

onblur="sentence1; sentence2; sentence3;"

1
如果使用Web表单,您想要回传到服务器以处理服务器端事件,可以使用__doPostBack(this.name, '')来回传到服务器(也提到了可以使用服务器端事件来输出(我相信是GetClientResourceUrl或类似命名)这个,但我喜欢使用__doPostBack方法执行回传。
如果使用MVC,您可以使用$.get或$.post调用操作方法,如$.get("/Controller/Action", function(result) { }). 对于Web表单,您无法直接调用方法。您可以调用Web服务或页面方法。
希望对您有所帮助。

0

最接近的方法是调用本地函数(javascript),然后通过异步调用(Ajax)向服务器发出请求。但是您无法直接从客户端调用服务器上的方法。

使用jQuery,代码如下:

$("#txtUserName").blur(function(e){
  ControlOnBlur(); // call first function
  $.post("/methods", {methodName:"refreshData", function(results){
    /* results represents that which was returned from the server */
    alert(results);
  });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接