【问题标题】:Passing a variable value from javascript to ASP将变量值从 javascript 传递到 ASP
【发布时间】:2009-05-29 01:15:14
【问题描述】:

在这个社区的帮助下,我能够将一段静态文本从 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页面上的隐藏字段。然后它回发到我在更新面板中的一个不可见按钮。隐藏按钮的点击事件触发,它会抛出一个显示隐藏元素内容的消息框,它总是“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());

【问题讨论】:

    标签: asp.net jquery drag-and-drop hidden


    【解决方案1】:

    在你的 drop 函数中,你没有提供任何形式参数:

    drop: function() { 
    

    应该是

    drop: function(ev, ui) {
    

    我在你的 drop 回调中猜测这个表达式:

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

    因为无法在函数范围内引用 ui 对象而失败。

    【讨论】:

    • 哎呀,只要我把 (ev, ui) 放在那里,整个事情就坏了。 ui.draggable.attr 我从其他 StackO 线程中提取出来的东西,它可能不是获取丢弃元素 ID 的正确方法......
    • 如何从函数中引用拖放的 ui 对象?更改为 function(ev,ui) 可以防止发生拖动,更不用说丢弃了。
    • 啊,刚刚想通了。我忘了加分号,你建议的解决方法是正确的!
    • @karim79,我可以请你看看这里的拖放相关问题:stackoverflow.com/questions/54498364/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2022-01-07
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2017-06-03
    相关资源
    最近更新 更多