我正在尝试使用 jQuery 更改 asp:textbox 的值,使用我在几个地方引用的这行代码:
$("#<%= element.ClientID %>").attr('value', "");
但是,我不断收到一个语法错误,说第一部分是无效的表达式。我敢肯定这是我在这里想念的简单东西,只是不知道它是什么。
jQuery 是通过母版页链接的,而具有包含相关行的函数的 .js 文件会单独链接到特定页面上。
你的语法是正确的:
$('#<%= textbox.ClientID%>').val('new textbox value');
是<asp:textbox />
通过 javascript 选择的正确语法,在这种情况下是 jQuery;但是,这仅适用于 .ASPX 文件。
您需要将此单独的 .js 文件转换为 .ASPX 页面中的内嵌脚本才能正常工作。
或者,您可以使用 CSS 类作为选择器,它将在您的外部 .js 文件中工作:
在您的 .JS 文件中
$('.uniqueCSSClassName').val('new textbox value');
在您的 .ASPX 文件中
<asp:textbox ID="whatever" CssClass="uniqueCSSClassName" />
这将允许您从外部 javascript 文件中选择您的文本框。这不是一个漂亮的方法,但它会起作用。我会选择第一个选项,并将我的 .js 代码移动到内联脚本中。
<script runat="server" type="text/javascript">
$("#<%= element.ClientID %>").val("");
</script>
此代码是在.aspx
页面中还是在.js
文件中?asp 引擎不处理 javascript 文件,因此它不会变成<%= element.ClientID %>
实际的客户端 ID。
此外,设置文本框值的代码行应该是:
$('selector').val('');
如果您想将您的 javascript 分开,请改用一个类。
您需要在“元素”的位置定义元素的 ID,例如:
$("#<%= yourElementId.ClientID %>").attr('value', "");
并且该元素应该具有runat="server"
属性
尝试这个。
$('[id$=textboxID]').val();