jQuery在contenteditable上附加会添加不可见的字符

时间:2018-11-12 14:58:13

标签: jquery html sqlite append

我有一个SQLite3 SQL提示符,在右边的列表中单击它可以在其后附加表/列名称。
好吧,这就是我想要做的。由于我不理解的错误,我不得不禁用此功能。

如果我手动输入请求,则一切正常。但是,如果我使用按钮添加`table`,则会从SQLite收到此错误:

  

在“ SELECT * FROM`table`”中:在“ FROM”附近:语法错误

此错误甚至不会在附加的文本上发生!!

但是输入在视觉上是相同的。在控制台和HTML树(检查器)中也是如此。没有显示特殊字符。
由于有一个下拉菜单,允许我访问以前的SQL输入,因此我可以检查是否有不可见的字符。访问错误的输入并再次运行后,错误仍然存​​在。


这是HTML和Javascript,因此您可以看到我想要做什么,并且没有明显的区别:

$('i').click(function() {
    $('#sql-input').append('`' + $(this).data('value') + '`');
});

$('#sql-form').submit(function(e) {
    e.preventDefault();
    console.log($("#sql-input").text());
    /*
        Here is the ajax request to execute the SQL
    */
});
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<form id="sql-form" action="" method="post">
    <label for="sql-input">SQL PROMPT</label>
    <br />
    <div id="sql-input" style="height: 80px; width: 150px; border: solid 1px black;" contenteditable></div>
    <br />
    <input type="submit" value="send" />
    <button type="button" onclick="console.clear();">clear console</button>
</form>
<div class="list">
    <ul style="cursor: pointer;">
        <li><i data-value="table1">table1</i></li>
        <li><i data-value="col1_1">col1_1</i></li>
        <li><i data-value="col2_1">col2_1</i></li>
        <li><i data-value="col3_1">col3_1</i></li>
        <li><i data-value="table1">table2</i></li>
        <li><i data-value="col1_2">col1_2</i></li>
    </ul>
</div>

但是,有些奇怪的是,如果我触摸JQuery输入的文本,错误就会消失。

我已经尝试过的内容:

删除引号:`table` => table
使用$().text()$().html()代替$().append()

0 个答案:

没有答案