<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,步知道是为什么
传ListView1.ClientId,这才是真正的在客户端的ID
是要ListView中的文本框控件
@xibin: 本来还想自己动手一把。。。
"calagate(priceTextBox.ClientID,countTextBox.ClientID,amountTextBox.ClientID);"
这明明是字符串啊,不是代码,起码得拼接一下吧...
"calagate("+priceTextBox.ClientID+ ","+ countTextBox.ClientID+"," + amountTextBox.ClientID+");"
没在VS里面测试,楼主可以亲自试一下.
“
function calagate(priceid, countid, amountid)
” 在哪个地方调用的?
aspx页面
@xibin: “aspx页面 ”你这不是说的废话吗!aspx页面页面,通过button点击,还是怎么调用的?
是不是传递参数是,穿的不对!!用firebug调试一下!!
@Angkor:
定义: function calagate(priceid, countid, amountid)
调用:countTextBox.Attributes["onblur"] = "calagate();";------〉参数呢???
很显然,你的调用没传递参数!
@Angkor: 补充的还把参数写出来,我传了参数也还是步行
@xibin: 你是怎么传递的??
@Angkor: 问题补充那
@xibin: ???你的调用方法肯定写错了,没有传递过去参数!!
@Angkor: 我不知道为什么传不过去,运行后查看页面源代码,可以看到calagate()里面的形参确实是那几个文本框的ID,但是在calagate()里,这形参又没传过去
@xibin: 这就要问你自己了!!
文本框控件:直接textbox1.ClientId
调用calagate方法时传入的参数是空的,你给calagate方法没一点用的,你得把你怎么调用的代码放出来大家才能知道你哪有问题。
用 console.lg(priceid) 检查一下传入的id是否正确
countTextBox.Attributes["onblur"] = "calagate(priceTextBox.ClientID,countTextBox.ClientID,amountTextBox.ClientID);";
这段代码肯定有问题啊,怎么能这样写呢?