2009-05-29 117 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