2011-12-15 59 views
0

我想將一個變量傳遞給一個jQuery對話窗口。我使用的是經典的ASP,並且讓onyl真的觸及了jquery的世界。我花了幾個小時研究和使用.data方法,但遇到了麻煩。你的時間和協助將非常激動人心!傳遞變量到jquery對話框

這是我剝奪了頁:

$(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 

回答

1

對話框只是你的頁面上的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; 
}); 

或者你可以使用該對話框的open成員:

... 
width: 452, 
open: function() { $('#dialog').text(myVariable); }, 
modal: true, 
... 

要更改對話框div每當它打開。

代碼id='dialog_link(someValue)'不會做任何事情,因爲id屬性不能進行函數調用,只有像onchange這樣的事件處理程序可以做到這一點。即使它可以,dialog_link不是一個可以傳遞值的函數。這只是另一個元素的id

我敢肯定,你可能已經知道,但jQuery的文檔是非常useful- here are the docs for dialog.

編輯

在回答您的評論:我將放棄$('#dialog_link').click();聲明和改變鏈接代碼如下:

<a href='#' class='OrangeButton' onclick='openDialog(someValue);'>Show Window</a> 

,然後添加JavaScript函數被調用的單擊事件:

function openDialog(value) { 
    $('#dialog').text(value); 
    $('#dialog').dialog('open'); 
} 

編輯2

裏面的ASP圈這樣的事情應該做的伎倆:

Response.Write("<a href='#' onclick='openDialog(" & Products(0) & ");'>Show</a>") 

這將在頁面上創建一個<a></a>元素與經過的onclick處理器預期值爲openDialog,使其可以通過對話框訪問。

我稍微更改了鏈接的代碼,以便它們全部適合於一行,但如果您願意,可以隨時添加class='OrangeButton'

+0

謝謝你的快速回復。我看到你給了我一個在JS內部發起變量的例子。我應該提到: Mat41 2011-12-15 03:05:00