Javascript 带jQuery的数据库

Javascript 带jQuery的数据库,javascript,jquery,pouchdb,Javascript,Jquery,Pouchdb,我正在尝试将PockDB与jQuery结合使用。问题是我无法在app.js中使用“put”方法。它在document.ready函数中工作得很好,但在代码的其他函数中不起作用。我的意思是,当页面加载时,它会在数据库中创建一个新行,但当我提交表单时,它什么都不做。 (注:“prueba”在西班牙语中是“test”的意思) 这是我的index.html: <html> <head> <title>Prueba PouchDB</title>

我正在尝试将PockDB与jQuery结合使用。问题是我无法在app.js中使用“put”方法。它在document.ready函数中工作得很好,但在代码的其他函数中不起作用。我的意思是,当页面加载时,它会在数据库中创建一个新行,但当我提交表单时,它什么都不做。 (注:“prueba”在西班牙语中是“test”的意思)

这是我的index.html:

<html>
<head>
    <title>Prueba PouchDB</title>
    <script src="pouchdb.js"></script>

    <script src="jquery.js"></script>

    <script src="base.js"></script>
    <script src="app.js"></script>

</head>

<body>
    <div id="crearEntrada">
        <form method="post">
            <input type="text" placeholder="Texto" name="texto" id="texto"
                                            autocapitalize="off" autocorrect="off"
                                            autocomplete="off" />
            <input type="submit" class="submit" name="action"
                                            value="Guardar entrada" />
        </form>
    </div>

    <div id="mostrarRegistros">
        <button onclick="showTodos()">Mostrar Registros</button>
        <ul>
            <li id="entryTemplate" class="entry" style="display:none ;text-align: center">
                <span class="registro">Registro</span>
            </li>
        </ul>
    </div>

</body>
我只是想让work成为addTodo函数。剩下的代码只是从数据库中复制粘贴而来的。我还提出了许多警报进行调试和一些代码注释。 谢谢! Leandro.

如您所定义

var db = new PouchDB('prueba');
作为一个全局变量,您不需要在这里重新定义db,所以您的todo函数应该是这样的

function addTodo() {
    db.put({
     _id:"408",
     title:"Another example",
     completed:false
    });
 console.log("ToDo updated");
 }
或者,如果您想从输入字段中获取文本,我将函数重命名为addTodoText

function addTodoText() {
    var texto= $('#texto').val();
    //alert(texto);
    db.put({
        _id: new Date().toISOString(),
       title: texto,
   completed: false
   });
 console.log("ToDo updated with " + texto);
 }
并通过基本示例了解您所做的工作

var db = new PouchDB('prueba');
作为一个全局变量,您不需要在这里重新定义db,所以您的todo函数应该是这样的

function addTodo() {
    db.put({
     _id:"408",
     title:"Another example",
     completed:false
    });
 console.log("ToDo updated");
 }
或者,如果您想从输入字段中获取文本,我将函数重命名为addTodoText

function addTodoText() {
    var texto= $('#texto').val();
    //alert(texto);
    db.put({
        _id: new Date().toISOString(),
       title: texto,
   completed: false
   });
 console.log("ToDo updated with " + texto);
 }

并通过基本示例了解您的工作

谢谢您的回答。我还认为var db不需要重新定义为addTodo函数,因为它是一个全局变量。我只是试着看看它是否有效。我试过你给我的密码,但还是不行。我已经阅读了PockDB文档,但对我帮助不大。在视频教程中显示的代码中,一切正常,但是当我尝试做一些稍微不同的事情时,我遇到了这个问题。谢谢你的回答。我还认为var db不需要重新定义为addTodo函数,因为它是一个全局变量。我只是试着看看它是否有效。我试过你给我的密码,但还是不行。我已经阅读了PockDB文档,但对我帮助不大。在视频教程中显示的代码中,一切正常,但是当我尝试做一些稍微不同的事情时,我遇到了这个问题。非常感谢。