我負責用自定義函數替換Javascript prompt
調用,該自定義函數使用花哨的Javascript激活的模式對話框。使用模式重新實現Javascript提示()對話框
該函數被調用一次,並期望返回一個字符串,並帶有來自用戶的輸入。我無法控制函數的調用方式(它是一個外部函數庫)。
使模態和輸入很容易。在用戶單擊提交/確定按鈕後,如何將輸入返回給我的自定義提示功能的調用者?
jQuery很好。
我負責用自定義函數替換Javascript prompt
調用,該自定義函數使用花哨的Javascript激活的模式對話框。使用模式重新實現Javascript提示()對話框
該函數被調用一次,並期望返回一個字符串,並帶有來自用戶的輸入。我無法控制函數的調用方式(它是一個外部函數庫)。
使模態和輸入很容易。在用戶單擊提交/確定按鈕後,如何將輸入返回給我的自定義提示功能的調用者?
jQuery很好。
prompt()
的瀏覽器實現以不能用頁面上運行的用戶級JavaScript進行復制的方式實現。你必須使用回調函數。如果可能的話,已經有一個你應該使用的現成的解決方案。
我想說的是,你的代碼的用戶不能有這樣的:
var result = customPrompt(...);
相反,他們必須在此線的東西:
customPrompt({
...
ok: function() {
//when user clicked ok
},
cancel: function() {
//when user clicked cancel
}
});
//Code continues to run here and doesn't wait for the user to click ok or cancel
這是你如何能得到用戶輸入與您的模式啓動器相同的功能,以便您可以處理它。
<input type="text" id="user-input" />
<a href="#" onClick="handlePrompt(false)">OK</a>
function handlePrompt(launchModal){
if(launchModal){
// Code to Launch Modal
}else{
var userInput = $("#user-input").val();
// Do what you want with the input.
}
}
問題是我需要創建我的模態提示並返回輸入到一個函數的調用者 - 我沒有「回調」調用。 –
編輯,也許這會幫助你。 –
我需要輸入來自模態。這裏是路徑:我寫的函數被外部庫調用。外部庫期望我的函數返回一個字符串。該字符串需要由用戶提供 - 我打算將輸入框放在*模式對話框中。 –