Jquery Asp.net按钮禁用
html代码:Jquery Asp.net按钮禁用,asp.net,javascript,jquery,Asp.net,Javascript,Jquery,html代码: <asp:Button runat="server" ID="btnTest" Text="Test" OnClick="btnTest_Click" /> 代码隐藏: protected void btnTest_Click(object sender, EventArgs e) { //here not come. } btnTest事件背后的代码不起作用?它不起作用,因为生成的HTML id与ASP.NET id不同。 因此,btnTest将作为另一个Id呈
<asp:Button runat="server" ID="btnTest" Text="Test" OnClick="btnTest_Click" />
代码隐藏:
protected void btnTest_Click(object sender, EventArgs e)
{
//here not come.
}
btnTest事件背后的代码不起作用?它不起作用,因为生成的HTML id与ASP.NET id不同。
因此,btnTest将作为另一个Id呈现。
一种快速脏方法是运行页面,查看HTML源代码,找到按钮生成的Id,并在jQuery函数中将其作为一个片段传递 更好的方法是通过代码隐藏生成jQuery函数:
Literal1.Text = "$('[id$=" + btnTest.ClientId + "]').click(function(
{$(this).attr('disabled', 'disabled');});";
编辑:
此外,我也情不自禁地意识到,您的OnClick属性应该指向btnTest\u Click,而不是btn\u Click您是否只需要执行以下操作:
btnTest.Enabled = False;
在代码隐藏文件中?这将导致回发,但它应该可以工作。尝试使用jQuery类选择器:
CssClass=“MyButton”
添加到ASP.NET按钮李>
disabled=“disabled”
属性$('button.MyButton').click(function(){
$(this).attr('disabled', 'disabled');
});
示例代码使用带选择器的端点。选择器没有错误。 您只需要像这样更改代码
$('[id$=btnTest]').click(function () {
$('[id$=btnTest]').attr('disabled', true);
});
我已经测试过了,没有任何问题 我认为在click事件处理程序中禁用按钮会阻止回发。请在一段时间后尝试执行禁用代码:
$('[id$=btnTest]').click(function(){
var button = this;
setTimeout(function() {
$(button).attr('disabled', 'disabled');
}, 100);
});
我可以解决您的问题:
$(.classButton”).prop('disabled','disabled');
并移除禁用:$(“.classButton”).prop('disabled','')
$=
是“ends with”选择器,他的代码已经适用于此。“btnTest_Click而不是btn_Click”否您需要知道JS中按钮的ClientID
。如果使用母版页,它与ID
不同,但类似于ctl00\u Content1\u btnTest
。问题是您必须设置disabled=“disabled”
属性,而不是disabled=“true”
。只需将disabled
属性true的值替换为disabled:.attr('disabled','true'))
by.attr('disabled','disabled')
-这就是问题所在。
$('[id$=btnTest]').click(function(){
var button = this;
setTimeout(function() {
$(button).attr('disabled', 'disabled');
}, 100);
});