当用户按下提交表单按钮时,我正在尝试更改一组文本框(其中包含灰色建议)的值。此按钮使用 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),因为他们使用一些服务器端技巧来确定是否应该使用某些验证器打开或关闭(实际上应该由客户端执行此操作),因此他们必须将其关闭,因为如果不这样做,它将触发验证器。
无论如何...所以我仍然遇到问题,按钮的点击功能似乎没有及时触发或脚本同时运行。我通过在后面的代码上添加一个警报和一个断点来测试它,断点触发并且警报也触发。 sooo..... 是的。 有什么办法可以通过从按钮中删除“onclientclick”并调用它在 CB 中调用的函数来规避这个问题? 有任何想法吗? (拜托?)
小更新:
还是想不通 :(。有人对这个问题感到困惑吗?
最佳答案
是的,这个功能应该可以工作
$(this.form).submit(function(){
//Change value here
});
但罪魁祸首可能是注释部分:“//在此处更改值。”如果您正在使用其中之一,
$('#target').text('my new info');
$('#target').html('my new info');
...你会遇到麻烦的。你需要使用 .val()
$('#target').val('my new info');
关于javascript - 在回发 ASP.NET 之前使用 javascript (Jquery) 更改文本框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388793/