2012-08-06 63 views
0

我使用這個代碼傳遞一個變量從我的Java類,以我的Web視圖:傳遞2變量在一個Java腳本函數

web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\");};"); 

,並用Java腳本代碼:

function setValue(amount1) 
    { 
    myValue = amount1; 

    document.getElementById("amount").value = myValue; 
} 

現在我只想在一個函數名中傳遞2個變量setValue

有什麼想法?

回答

1

在它的面前,我會說這是這麼簡單

web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};"); 

function setValue(amount1, amount2) 
{ 
    myValue1 = amount1; 
    myValue2 = amount2; 

    document.getElementById("amount1").value = myValue1; 
    document.getElementById("amount2").value = myValue2; 
} 

但是,如果你能解釋一下你在做什麼,我們也許能夠提供更好的解決方案。

+0

我只是想設置一個HTML文本框文本爲1和2個值。 – user1570222 2012-08-06 07:54:02

0
web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};"); 

function setValue(amount1, amount2) 
    { 
    myValue = amount1; 

    document.getElementById("amount").value = myValue; 
} 

請告訴它是否有效。

0

如果您要走這條路線,儘管我確信您正在做的更優雅的解決方案......您最好發送一個包含您希望設置的所有鍵和值的對象:

setValue({amount1:'amount1', amount2:'amount2'}); 

該結構比定義sperate變量更具可擴展性。所有你需要做的是確保你的鑰匙綁到他們的目的地輸入與某種標準化的命名convension的,你可以使用這樣的功能:

function(obj){ 
    var i, elm; 
    for(i in obj) { 
    if ((elm = document.getElementById(i))) { 
     elm.value = obj[i]; 
    } 
    } 
} 

通過標準化的命名convension,所有我的意思是,你的關鍵名稱與目標輸入相匹配。因此您在目標網頁上輸入id =「amount1」,另一個id =「amount2」。如果您要發送「大量」我猜他們是數字還要記住..如果是這樣,你不需要把他們送到字符串,這意味着你可以避開\」逃脫。

web.loadUrl(
    "javascript:window.onload = function(){setValue({amount1:123, amount2:5});};" 
); 
相關問題