【发布时间】:2016-03-13 13:15:51
【问题描述】:
所以我最近一直在搞乱 Firebase,遇到了一个需要帮助解决的问题。所以我试图将用户输入的数据发送到 Firebase,并让该数据显示在指定的 div 中,但数据没有显示在我的 Firebase 或那个 div 中......
这是我的 HTML 代码:
<form>
<input name="name" class="form-control" type="name" placeholder="Title" id="titleInput" />
<br/>
<textarea id="postInput" name="content" data-provide="markdown" rows="10"></textarea>
<hr/>
<button type="submit" class="btn" onclick="submitPost()">Submit</button>
</form>
还有我的 JQuery 代码(已编辑):
function submitPost() {
var myDataRef = new Firebase('https://EXAMPLE.firebaseio.com/');
var name = $('#titleInput').val();
var text = $('#postInput').val();
myDataRef.push({name: name, text: text});
$('#postInput').val('');
myDataRef.on('child_added', function(snapshot) {
var post = snapshot.val();
displayUserPost(post.name, post.text);
})
function displayUserPost(name, text) {
$('<div/>').text(text).prepend($('<em/>').text(name+': ')).appendTo($('#PostsDiv'));
$('#PostsDiv')[0].scrollTop = $('#PostsDiv')[0].scrollHeight;
}
};
【问题讨论】:
-
抱歉,* 不是一个很好的调试媒介。您是否在
submitPost()方法中设置了断点,如果设置了,它会被触发吗?如果是这样,name和text的值是否从输入中正确读取?如果是这样,JavaScript 控制台中是否显示任何错误消息? -
一个问题:你的变量被命名为
post:var post = snapshot.val();,但是你尝试从message:displayUserPost(message.name, message.text);读取属性 -
@FrankvanPuffelen 所以我已经修复了如上所示的代码。我在本地再次尝试,这一次,帖子出现了一瞬间,然后页面重定向到
/index.html?name=Test&content=Test。数据仍然不在 Firebase 中...而且没有断点,控制台也没有显示任何错误。 -
因为你的按钮是
submit类型的,它会提交表单,刷新页面。如果您将按钮的类型更改为button,它应该停止这样做。
标签: javascript jquery html firebase