在这个社区的帮助下,我已经能够将一小段文本从javascript(clientside)传递到ASP 3.5(服务器端)!这段代码很漂亮:
$('.drop').droppable({
tolerance: "touch", // Here should be a string
drop: function() {
$('[id$="myHidden"]').val('Testy test test');
__doPostBack('<%= HiddenButton.UniqueID %>', '');
alert($('[id$="myHidden"]').val());
}
});
上面所做的是,当删除.drop类的元素时,它会将字符串“Testy test test”分配给我的aspx页面上的隐藏字段。然后它回发到我在updatepanel中的隐形按钮。隐藏按钮的click事件触发,它会抛出一个显示隐藏元素内容的msgbox,它总是“Testy test test”。
现在,我遇到了一些问题。无论我放入dropzone,而不是将隐藏字段的值设置为静态字符串,我想将其设置为我放入dropzone的ID的ID。这是我改变的:
$('[id$="myHidden"]').val($(ui.draggable).attr("id"));
__doPostBack('<%= HiddenButton.UniqueID %>', '');
alert($('[id$="myHidden"]').val());
现在突然间,当我放下一些东西时,它仍然粘在掉落区域,没有掉落事件发生。我有什么打破的吗?或者我是否试图以错误的方式获取被删除元素的ID?
如果重要,这里是相关的aspx页面内容:
<asp:Button ID="HiddenButton" runat="server" Text="Button" />
该按钮通常通过css隐藏,我暂时将其隐藏起来用于测试目的。
EDIT !!!!:
我也试过这个,但它不起作用(所以我可以排除'var'的东西?)
var foo = $(ui.draggable).attr("id")
$('[id$="myHidden"]').val(foo);
__doPostBack('<%= HiddenButton.UniqueID %>', '');
alert($('[id$="myHidden"]').val());
答案 0 :(得分:1)
在你的drop函数中,你没有提供任何形式参数:
drop: function() {
应该是
drop: function(ev, ui) {
我在你的drop callback中猜测这个表达式:
$(ui.draggable).attr("id")
失败,因为无法在函数范围内引用ui对象。