首页 新闻 搜索 专区 学院

JQuery 如何取得ListView中控件的ID

0
悬赏园豆:100 [待解决问题]
<script type="text/javascript">
        function calagate(priceid, countid, amountid) {
            var priceval = $("input[id=" + priceid+"]").val();
            alert(priceval+"");
        }
    </script>

在cs文件写了calagate,并把控件ID作为形参,查看页面源代码时候也看得到ID,但是在JQuery中就没有

问题补充:
protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.InsertItem)
            {
                TextBox priceTextBox = (TextBox)e.Item.FindControl("priceTextBox");
                TextBox countTextBox = (TextBox)e.Item.FindControl("countTextBox");
                TextBox amountTextBox = (TextBox)e.Item.FindControl("amountTextBox");

                countTextBox.Attributes["onblur"] = "calagate(priceTextBox.ClientID,countTextBox.ClientID,amountTextBox.ClientID);";

                            }
            
        }

我试的时候也是有参数,忘记把参数显示出来,可以正常运行,在页面查看源代码时候,这3个文本框控件ID都能描绘出来,在aspx页面JQuery调用时候,还是没ID,步知道是为什么

xibin的主页 xibin | 初学一级 | 园豆:41
提问于:2012-07-02 18:21
< >
分享
所有回答(7)
0

传ListView1.ClientId,这才是真正的在客户端的ID

Lyon Gu | 园豆:27 (初学一级) | 2012-07-02 19:32

是要ListView中的文本框控件

支持(0) 反对(0) xibin | 园豆:41 (初学一级) | 2012-07-02 20:34

@xibin: 本来还想自己动手一把。。。

"calagate(priceTextBox.ClientID,countTextBox.ClientID,amountTextBox.ClientID);"
这明明是字符串啊,不是代码,起码得拼接一下吧...
"calagate("+priceTextBox.ClientID+ ","+ countTextBox.ClientID+"," + amountTextBox.ClientID+");"
没在VS里面测试,楼主可以亲自试一下.
 
支持(0) 反对(0) Lyon Gu | 园豆:27 (初学一级) | 2012-07-05 16:51
0

function calagate(priceid, countid, amountid)

” 在哪个地方调用的?

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-02 20:24

aspx页面

支持(0) 反对(0) xibin | 园豆:41 (初学一级) | 2012-07-02 20:35

@xibin: “aspx页面 ”你这不是说的废话吗!aspx页面页面,通过button点击,还是怎么调用的?

是不是传递参数是,穿的不对!!用firebug调试一下!!

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-02 20:38

@Angkor: 

定义: function calagate(priceid, countid, amountid)
调用:countTextBox.Attributes["onblur"] = "calagate();";------〉参数呢???
很显然,你的调用没传递参数!
支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-03 14:41

@Angkor: 补充的还把参数写出来,我传了参数也还是步行

支持(0) 反对(0) xibin | 园豆:41 (初学一级) | 2012-07-04 11:32

@xibin: 你是怎么传递的??

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-04 11:41

@Angkor: 问题补充那

支持(0) 反对(0) xibin | 园豆:41 (初学一级) | 2012-07-04 20:24

@xibin: ???你的调用方法肯定写错了,没有传递过去参数!!

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-04 22:24

@Angkor: 我不知道为什么传不过去,运行后查看页面源代码,可以看到calagate()里面的形参确实是那几个文本框的ID,但是在calagate()里,这形参又没传过去

支持(0) 反对(0) xibin | 园豆:41 (初学一级) | 2012-07-05 01:10

@xibin: 这就要问你自己了!!

支持(0) 反对(1) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-05 10:15
0

文本框控件:直接textbox1.ClientId

悟行 | 园豆:12400 (专家六级) | 2012-07-02 21:06
0

很有可能是楼上几位讲的可能,楼主可能没有弄清楚,在ASP.NET中控件的服务器端ID与客户端ID的区别。强烈建议看下asp.net和javascript 获取服务器控件的id

Mike.Jiang | 园豆:127 (初学一级) | 2012-07-02 22:48
0

调用calagate方法时传入的参数是空的,你给calagate方法没一点用的,你得把你怎么调用的代码放出来大家才能知道你哪有问题。

LCM | 园豆:6876 (大侠五级) | 2012-07-03 08:40
0

用 console.lg(priceid) 检查一下传入的id是否正确

dudu | 园豆:37655 (高人七级) | 2012-07-03 10:17
0
 countTextBox.Attributes["onblur"] = "calagate(priceTextBox.ClientID,countTextBox.ClientID,amountTextBox.ClientID);";
这段代码肯定有问题啊,怎么能这样写呢?
psforever | 园豆:461 (菜鸟二级) | 2012-07-06 00:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册