2009-05-29 121 views
3

在此社区的帮助下,我已经能够将JavaScript(客户端)中的静态块传递给ASP 3.5(服务器端)!这段代码精美的作品:将变量值从javascript传递到ASP

$('.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的元素被丢弃,它将字符串“暴躁测试测试”分配给我的隐藏字段我的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 foo = $(ui.draggable).attr("id") 
    $('[id$="myHidden"]').val(foo); 
    __doPostBack('<%= HiddenButton.UniqueID %>', ''); 
    alert($('[id$="myHidden"]').val()); 

回答

1

在你降功能,你不提供任何形式参数:

drop: function() { 

应该

drop: function(ev, ui) { 

我在你的下降回调猜测这个表达式:

$(ui.draggable).attr("id") 

失败,因为UI对象不能在功能的范围内被引用。

+0

是的,只要我把(ev,ui)放在那里,那么整个事情就会破裂。 ui.draggable.attr的东西,我把一些其他的StackO线程,它可能不是正确的方式来获得一个被丢弃的元素的ID ... – 2009-05-29 02:55:37