2017-04-03 62 views
0

激活與按鈕後,參數JavaScript函數單擊

function changeForms(data){ 
 
    \t document.getElementById("firstname").value = data.firstName; 
 
    \t document.getElementById("lastname").value = data.lastName; 
 
    \t document.getElementById("email").value = data.emailAddress; \t 
 
    }

我想打電話給這個按鈕此功能:

<button class="button" id="autofill" onclick="">Fill</button>

我的問題是,該參數數據來自另一個函數,但我不想在之後調用changeForms函數功能的getData象下面這樣:

function getData(data) { 
 
    \t data= data.values[0]; 
 
     changeForms(data); 
 
    }

我要啓動該功能changeForms點擊後,卻與的getData數據。 是否有可能停止一個功能,直到按鈕點擊或將數據存儲在某個地方?

在此先感謝

馬塞爾

+0

不確定問題出在哪裏。您是否擔心確保數據已被檢索(例如,通過ajax)?如果是這樣的話,只需讓ajax函數成功創建「填充」按鈕即可。 – Snowmonkey

+0

需要更清楚一點你想做什麼。 「數據」從哪裏來? – DeclanPossnett

+0

在代碼片段中,我用函數getData調用函數changeForms。但我想用按鈕調用函數changeForms,但是使用getData –

回答

1

首先建議不要做內聯JavaScript,這看起來醜陋,難以維護並不算靈活。

我建議:

添加到您的按鈕的ID,如 「buttonWithId」 然後編寫下面的JavaScript代碼:

var myButton = document.getElementById("buttonWithId"); 
myButton.addEventListener("click", function() { 
    // your code goes here.... 
}); 

這裏的一些實況在此:

https://www.w3schools.com/jsref/met_element_addeventlistener.asp

那麼你都可以使用你的`getData``的返回值。

var getData = function() { 
    return someData; 
} 

然後調用看起來是這樣的:

var someData = getData(); 
changeForms(someData); 

把這個先前定義的空函數裏面。

注意:如果你的功能getData是異步的,你必須使用回調函數或承諾(我個人最喜歡的選擇)。