在回发ASP.NET之前使用javascript(Jquery)更改文本框的值

时间:2011-09-12 13:37:27

标签: javascript jquery asp.net

当用户按下提交表单按钮时,我正在尝试更改一组文本框(其中包含灰显的建议)的值。此按钮使用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事件之前触发,因此在我发送值之前进行服务器端验证时,我有错误的值,更改为客户端验证没有任何意义,因为当我将表单数据发送回db时,我仍然会遇到同样的问题。


更新

所以我仍然有一个问题(由于这个原因,这个和精神上都有) 由于在我之前为此工作的白痴(现在我必须解决它),他们从底部的按钮中删除了提交行为(asp.net),因为他们使用一些服务器端技巧来确定是否应该有一些验证器打开或关闭(当它真的应该是客户端那样做的时候),因此他们不得不将其关闭,因为如果不这样做会触发验证器。

无论如何......所以我仍然遇到麻烦,按钮的点击功能似乎没有及时触发或脚本同时运行。我通过在后面的代码上添加警报和断点来测试这一点,断点触发并且警报也会触发。 sooo .....是的。 有没有办法可以通过从按钮中删除“onclientclick”并调用它在CB中调用的函数来绕过这个? 有任何想法吗? (请?)


小更新:

仍然无法弄明白:(。是否有人对这个问题感到困惑?

5 个答案:

答案 0 :(得分:2)

是的,这个功能应该可行

$(this.form).submit(function(){
//Change value here
});

但是一个罪魁祸首可能是评论部分:“//在这里更改值。”如果你正在使用其中一个,

$('#target').text('my new info');
$('#target').html('my new info');

......你会遇到麻烦。你需要使用.val()

$('#target').val('my new info');

答案 1 :(得分:1)

偶然发现了这一点。自您第一次发布问题以来已经过了一个月,所以您可能已经修复了这个问题。但是,我想我还是会添加自己的想法。

首先,你的代码被忽略是有道理的。绑定到submit和onclick事件时,您的函数将添加到事件句柄列表中。事件处理程序从第一个添加到最后添加处理。所以回调是在调用jquery代码之前启动的。

要解决此问题,您需要更改OnClientClick调用的函数中的代码,或者编写一个调用代码的包装函数,然后调用OnClientClick调用的函数并更改OnClientClick以调用您的包装函数。

答案 2 :(得分:1)

在 JS触发所有事件之前,提交表单。

让按钮的onClientClick事件更改值。如果需要,可以按顺序调用函数。

jQuery在事件中做了一些时髦的事情,你不能确定他们附加后会发出什么样的命令。您必须明确指定要调用的函数。

<button id="some_button" onclick="SetValues(); SubmitForm();" />

答案 3 :(得分:0)

这个功能应该可以解决问题:

$(this.form).submit(function(){
//Change value here
});

只需确保在将文本字段发送到服务器之前再次启用它们,否则服务器将无法启动它们

答案 4 :(得分:0)

我使用了提交按钮的ID来检查“点击”

http://jsfiddle.net/sreeprasad/7urvg/