Jquery ui 将变量传递给jquery对话框

Jquery ui 将变量传递给jquery对话框,jquery-ui,asp-classic,Jquery Ui,Asp Classic,我想向jquery对话框窗口传递一个变量。我使用的是经典的ASP,onyl真正接触到了jquery的世界。我花了几个小时研究并尝试使用.data方法,但遇到了麻烦。你的时间和帮助将非常宝贵 这是我的精简版: $(function(){ // Dialog $('#dialog').dialog({ autoOpen: false, show: "slide

我想向jquery对话框窗口传递一个变量。我使用的是经典的ASP,onyl真正接触到了jquery的世界。我花了几个小时研究并尝试使用.data方法,但遇到了麻烦。你的时间和帮助将非常宝贵

这是我的精简版:

    $(function(){
            // Dialog           
            $('#dialog').dialog({
                autoOpen: false,
                show: "slide",
                hide: "fade",
                width: 452,
                modal: true,
                buttons: {
                    "Ok": function() { 
                        PostItNote.submit();
                        $(this).dialog("close"); 
                    }, 
                    "Cancel": function() { 
                        $(this).dialog("close"); 
                    } 
                }
            });

            // Dialog Link
            $('#dialog_link').click(function(){
                $('#dialog').dialog('open');
                return false;
            }); 
        });
这就是我对窗口的称呼:

<a href='#' id='dialog_link' CLASS='OrangeButton'> Show Window </a>

以及“我的窗口”的内容:

<div ID="dialog" TITLE="Periodic Report">
    stuff here
</div>

这里的东西
为何我不能这样做:

<a href='#' id='dialog_link(someValue)' CLASS='OrangeButton'> Show Window </a>

先谢谢你

它在ASP循环中的使用方式如下:

   do until Products.EOF
      --other code here---
      <a href='#' id='dialog_link(Products(0))' CLASS='OrangeButton'>
      --other code here---
      products.moveNext
   loop
do until Products.EOF
--这里还有其他代码---
--这里还有其他代码---
产品。下一步
环

该对话框只是页面上的一个
div
,因此不能真正“传递”一个值。不过,它可以由作用域中的任何JavaScript变量进行操作。您可以将单击处理程序更改为使用变量来操作对话框:

var myVariable = "Some new text for the dialog";

$('#dialog_link').click(function(){

    //New code to "pass" a value to the dialog
    $('#dialog').text(myVariable);

    $('#dialog').dialog('open');
    return false;
});
...
width: 452,
open: function() { $('#dialog').text(myVariable); },
modal: true,
...
或者,您可以使用对话框的
open
成员:

var myVariable = "Some new text for the dialog";

$('#dialog_link').click(function(){

    //New code to "pass" a value to the dialog
    $('#dialog').text(myVariable);

    $('#dialog').dialog('open');
    return false;
});
...
width: 452,
open: function() { $('#dialog').text(myVariable); },
modal: true,
...
在对话框打开时对其进行更改

代码
id='dialog\u link(someValue)
不会做任何事情,因为
id
属性不能进行函数调用,只有像
onchange
这样的事件处理程序才能进行调用。即使可以,
dialog\u link
也不是一个可以传递值的函数。它只是另一个元素的
id

我相信您可能已经知道了,但是jQuery文档非常有用-

编辑 回应您的评论:我将删除
$(“#对话框链接”)。单击()语句并将链接代码更改为以下内容:

<a href='#' class='OrangeButton' onclick='openDialog(someValue);'>Show Window</a>
编辑2 在ASP循环内部,类似这样的内容应该可以实现以下目的:

Response.Write("<a href='#' onclick='openDialog(" & Products(0) & ");'>Show</a>")
Response.Write(“”)
这将使用
onclick
处理程序在页面上创建一个
元素,该处理程序将所需值传递给
openDialog
,使对话框可以访问该元素


我稍微更改了链接的代码,使其可以放在一行中,但是如果您愿意,您可以随时添加
class='OrangeButton'
以及所有这些内容。

感谢您的快速响应。我知道你给了我一个在JS中初始化变量的例子。我应该提到:@Mat41:你能发布你的ASP循环的代码吗?那将非常有帮助。我用一些我认为有用的东西编辑了我的回复。嗯,我不太确定我是否按了正确的编辑按钮(第一次在这个论坛上),因为新添加的内容似乎不在下面,而且“编辑”标题也不像你的标题。我已经把我的循环贴在上面的“如何在ASP循环中使用”文本下,希望你能看到it@Mat41当前位置查看我的第二次编辑,它将为您提供所需内容。如果您觉得这有帮助,请不要忘记接受我的答案(勾选左边的勾号),欢迎使用stack overflow!大家好,请原谅我对JQuery的基本理解。所以我看到$('#dialog').text(value);在opendialog函数中,打印我传递给屏幕的值,很好。我现在已经把这件事评论掉了。如果我想在用户单击OK im my dialog window时将此值指定给对话框窗口中的现有隐藏表单变量,我将如何执行此操作?当我把这一行放在OK函数中(就在positnote.Submit之前)行positnote.ProductID.value=text(value)时,我得到的值是未定义的;提前谢谢你!