【发布时间】:2011-09-12 13:37:27
【问题描述】:
当用户按下提交表单按钮时,我正在尝试更改一组文本框的值(其中包含灰色的建议)。此按钮使用 OnClientClick 运行服务器端方法,该方法提交数据并执行大量其他操作。
现在我的问题是我不能:放入一个 javascript 函数,该函数将在服务器被命中之前更改值,或者在 javascript 中调用服务器端方法而不是按钮 OnClientClick 事件。
我试过了:
$(this.form).submit(function(){
//Change value here
});
//using OnClientClick to call function
和
$("#"+"<%=submitBtn.ClientID %>").click(function(){
//Change values here
__doPostBack("<%=submitBtn.ClientID %>");
});
//not using OnClientClick to call server method
(很确定这行不通) 和
$("#"+"<%=submitBtn.ClientID %>").click(function(){
//Change values here
});
//using OnClientClick still to call function
我被难住了
编辑
是的,我显然没有提供足够的信息, 当我使用提交事件时会发生什么是服务器事件在 JavaScript 事件之前触发,因此在我发送值之前进行服务器端验证时,我有错误的值,更改为客户端验证没有任何意义,因为当我将表单数据发送回数据库时,我仍然会遇到同样的问题。
更新
所以我仍然有一个问题(无论是因为这个还是精神上的)。
由于在我之前从事此工作的白痴(现在我必须修复它),他们从底部的按钮中删除了提交行为(asp.net),因为他们使用了一些服务器端技巧来确定是否应该使用一些验证器打开或关闭(实际上应该由客户端执行此操作),因此他们必须将其关闭,因为如果不关闭它会触发验证器。
无论如何...所以我仍然遇到问题,按钮的单击功能似乎没有及时触发或脚本同时运行。我通过在后面的代码上添加警报和断点来测试这一点,断点触发并且警报也触发。呜呜……是啊。 有什么办法可以通过从按钮中删除“onclientclick”并调用它在CB中调用的函数来规避这个问题? 有任何想法吗? (请?)
小更新:
还是想不通:(。有人对这个问题感到困惑吗?
【问题讨论】:
-
为什么你不能适应 Javascript 函数?
-
那么到底是什么问题呢?值是否没有改变...您的功能是否没有运行...您尝试解决的确切问题的更多细节会有所帮助。
-
我为您编辑了我的问题,该函数确实运行并更改了客户端的值,但它不会转换到服务器端,因为服务器端首先触发。
标签: javascript jquery asp.net