1

我正在尝试使用 jQuery 更改 asp:textbox 的值,使用我在几个地方引用的这行代码:

$("#<%= element.ClientID %>").attr('value', "");

但是,我不断收到一个语法错误,说第一部分是无效的表达式。我敢肯定这是我在这里想念的简单东西,只是不知道它是什么。

jQuery 是通过母版页链接的,而具有包含相关行的函数的 .js 文件会单独链接到特定页面上。

4

5 回答 5

1

你的语法是正确的:

$('#<%= 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 代码移动到内联脚本中。

于 2013-07-18T14:34:19.043 回答
1
<script runat="server" type="text/javascript">
    $("#<%= element.ClientID %>").val("");
</script>
于 2013-07-18T14:34:51.280 回答
0

此代码是在.aspx页面中还是在.js文件中?asp 引擎不处理 javascript 文件,因此它不会变成<%= element.ClientID %>实际的客户端 ID。

此外,设置文本框值的代码行应该是:

$('selector').val('');

如果您想将您的 javascript 分开,请改用一个类。

于 2013-07-18T14:33:30.813 回答
0

您需要在“元素”的位置定义元素的 ID,例如:

$("#<%= yourElementId.ClientID %>").attr('value', "");

并且该元素应该具有runat="server"属性

于 2013-07-18T14:35:20.533 回答
0

尝试这个。

$('[id$=textboxID]').val();
于 2013-07-18T14:39:12.627 回答