Передача значения переменной из javascript в ASP

С помощью этого сообщества я смог передать статический фрагмент текста из 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».

Теперь вот где у меня есть некоторые проблемы. Из всего, что я бросаю в зону сброса, вместо того, чтобы устанавливать значение скрытого поля в статическую строку, я хочу установить для него идентификатор того, что я бросил в зону сброса. Вот что я изменил:

 $('[id$="myHidden"]').val($(ui.draggable).attr("id"));
    __doPostBack('<%= HiddenButton.UniqueID  %>', '');
    alert($('[id$="myHidden"]').val());

Теперь внезапно, когда я что-то бросаю, оно остается приклеенным к зоне сброса, и событие падения не срабатывает. Я что-то сломал? Или я пытаюсь получить идентификатор удаленного элемента неправильно?

Если это имеет значение, вот соответствующий материал страницы 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());

person Bill Sambrone    schedule 29.05.2009    source источник


Ответы (1)


В вашей функции drop вы не предоставляете никаких формальных параметров:

drop: function() { 

должно быть

drop: function(ev, ui) {

Я предполагаю, что это выражение в вашем обратном вызове drop:

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

происходит сбой, потому что на объект пользовательского интерфейса нельзя ссылаться в рамках функции.

person karim79    schedule 29.05.2009
comment
Да, как только я добавляю (ev, ui) туда, все ломается. Вещь ui.draggable.attr, которую я снял с какого-то другого потока StackO, возможно, это неправильный способ получить идентификатор отброшенного элемента... - person Bill Sambrone; 29.05.2009
comment
Как мне сослаться на удаленный объект пользовательского интерфейса из функции? Изменение на function(ev,ui) предотвращает перетаскивание, а тем более опускание. - person Bill Sambrone; 30.05.2009
comment
А, только что придумал. Я забыл добавить точку с запятой, предложенное вами исправление на месте! - person Bill Sambrone; 30.05.2009
comment
@ karim79, могу я попросить вас взглянуть на вопрос, связанный с перетаскиванием, здесь: stackoverflow.com/questions/54498364/ - person Istiaque Ahmed; 03.02.2019