我正在尝试将asp.net按钮控件的id传递给javascript函数。当我调用js函数start_time时,按钮的文本需要更改。我做了很多研究,但我仍然无法让它发挥作用。非常感谢任何帮助或建议。以下是我的代码。
<asp:Button ID="btnStart" runat="server" Text="OK" />
$("#btnStart").click(function () {
start_time("btnStart");
});
function start_time(controlStart) {
var a = document.getElementById(controlStart);
a.innerHTML = "Start";
}
答案 0 :(得分:1)
<asp:Button ID="btnStart" ClientIDMode="Static" runat="server" Text="OK" />
$("#btnStart").click(function () {
start_time("btnStart");
});
function start_time(controlStart) {
var a = document.getElementById(controlStart);
a.innerHTML = "Start";
}
如果您将ClientIDMode1
设置为static
,它应该有效。 http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx
答案 1 :(得分:0)
我发现在客户端选择ASP.net控件的最简单方法就是这样......
$("[ID$=btnStart]").click(function() {
start_time(this);
});
在此代码中,您将按钮传递给函数start_time
,因此您无需在DOM中搜索它...
function start_time(control) {
control.innerHTML = "Start";
}
由于ASP.net对控件执行ID的前缀,因此ID可以在不同的上下文中从一个页面更改为另一个页面。该选择器基本上选择ID以btnStart结尾的每个元素。
还有其他方法,例如使用ClientID,但这可能意味着将ASP与JS文件混合,具体取决于脚本实际运行的位置。
如果此脚本直接在页面上运行,而不是从包含的js文件运行,那么您可以执行以下操作...
$("#<%= btnStart.ClientID %>").click(function() {
start_time(this);
});
这将按照在服务器上解析页面时给出的ID选择按钮。
答案 2 :(得分:0)
@Archer答案几乎是正确的,但你应该像这样使用ClientID .. !!
$('#' + '<%= btnStart.ClientID %>').click(function() {
start_time(this);
});