2016-04-13 133 views
3

編輯:我想從我的形式保存數據輸入到數據庫火力地堡加載腳本異步?

id="field0"和按鈕,onClick"submitPost()"

<form> 
<input id="field0" name="ePost" type="text" value=""> 
<button type="submit" class="btn" onclick="submitPost()">Submit</button> 
</form> 

輸入無法使firebase.js入目。所以就這樣解決了。如果我將這些片段逐個添加到控制檯中,它似乎可以正常工作。但是,當我將它們全部同時加載到控制檯時出現錯誤。

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "https://cdn.firebase.com/v0/firebase.js"; 
document.head.appendChild(script); 

var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
myDataRef.on('child_added', function(snapshot) { 
var post = snapshot.val(); 
}); 

function submitPost(e) { 
var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
var name = $('#field0').val(); 
myDataRef.push({name: name}); 
$('#field0').val(''); 
} 

這裏是上面的例子:https://jsfiddle.net/hbaecklund/7mnns4dk/5/

我需要做的腳本異步加載爲了工作?但下面不起作用?

$.ajax({ 
    url: 'https://cdn.firebase.com/v0/firebase.js', 
    dataType: 'script', 
    cache: true, 
    success: function() { 
    var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
    myDataRef.on('child_added', function(snapshot) { 
    var post = snapshot.val(); 
    }); 
    function submitPost(e) { 
    var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
    var name = $('#field0').val(); 
    myDataRef.push({name: name}); 
    $('#field0').val(''); 
    };  
    } 
}); 
+0

您可以使用[requirejs](http://requirejs.org/) – Max

+0

問題是您要提交表單。您應該避免使用相關方法將數據發送到Firebase。但是,爲什麼你不能只包含firebase腳本? –

回答

1

試試這個,通過使用腳本標記加載事件:https://jsfiddle.net/7mnns4dk/6/

基本上只是使用:

script.load = function() { 
    // enter code that needs the script to be loaded here 
} 

而且它的工作原理與jQuery因爲你寫它,只需移動submitPost功能,以便它可以通過按鈕訪問:https://jsfiddle.net/7mnns4dk/7/