0

在我的应用程序中,我有一个下拉列表,将在单击按钮时填充。我尝试了一些在 document.ready 上运行良好但在单击按钮时不起作用的代码。

  $(document).ready(function () {
        $("#<%=btn.ClientID %>").bind('click',function () {
            //
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "gridpaging.aspx/binddropdown",
                data: "{}",
                dataType: "json",
                success: function (data) {
                    $.each(data.d, function (key, value) {
                        $("#ddl").append($("<option> </option>").val(value.UserId).html(value.UserName));
                    });
                    //

                },
                error: function (result) {

                    alert("Error occured");
                }
            });
        });
    });

请让我知道我哪里出错了..提前谢谢..

4

3 回答 3

0

看起来你在这里混合了两种技术。一个是 ejs: <%=btn.ClientID %>,它是一个提供动态内容的模板引擎。另一个是你的jQuery。可以解决您的问题的方法是向该按钮添加一个类,而不是依赖您的 btn.ClientID,然后使用 $(".myClass").bind('click', function() ...

看看能不能解决你的问题。如果没有,我需要更多信息。ejs 是在服务器端还是在客户端编译?您使用的是骨干网还是某种编译 ejs 的前端框架?

于 2013-02-28T06:58:44.777 回答
0

yourdeveloperfriend 几乎是对的,除了<%=btn.ClientID %>不是 ejs,而是 asp.net 片段,它很可能在错误的地方使用。我只能想象一个可行的场景,那就是当这个 JS 代码位于你的 aspx 文件中时,但很可能你将它放在一个单独的 js 文件中。所以按照你的开发者朋友说的做,在按钮上放一个类,然后在你的 JS 中使用它作为选择器。

于 2013-02-28T07:05:51.740 回答
0

我也遇到了同样的问题,并通过更改 id 设置解决了这个问题

$("#ddl")

$('#<%=ddl.ClientID%>')

于 2016-06-29T12:54:32.363 回答