在这个社区的帮助下,我已经能够将一段静态文本从 javascript(客户端)传递到 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页面上的隐藏字段。然后它回发到我在更新面板中的一个不可见按钮。隐藏按钮的点击事件触发,它会抛出一个显示隐藏元素内容的 msgbox,它总是“Testy test test”。
现在这是我遇到一些问题的地方。在我放入 dropzone 中的任何内容中,我不想将隐藏字段的值设置为静态字符串,而是将其设置为我放入 dropzone 中的任何内容的 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 隐藏,我只是暂时不隐藏它以进行测试。
编辑!!!!:
我也试过这个,但它不起作用(所以我可以排除'var'的事情?)
var foo = $(ui.draggable).attr("id")
$('[id$="myHidden"]').val(foo);
__doPostBack('<%= HiddenButton.UniqueID %>', '');
alert($('[id$="myHidden"]').val());