0

我有一个网页,其中包含一个在单击时运行脚本的按钮。该脚本应该提交两个文本输入字段的内容,并提交属性设置为innerHTML的 a 。问题是,如果有人将文本加粗,然后在输入几个单词后切换到普通字体,则提交的内容包括结束标记之前的所有内容。我通过在被调用的脚本中回显来解决这个问题。如何将所有内容传递给脚本?<div>contenteditabletrue</b>$_POST

编辑:我的 HTML 是:

<p>Contents:</p><br/>
<div contenteditable="true" style="border-style:solid; border-width:1px; background-color:#FFFFFF" id="contents"><br/></div>
<button onclick="submit_form();">Submit</button>

我的 Javascript 是:

function submit_form()
{
    var request = new XMLHttpRequest();
    request.open("POST", "/path/to/script.php", false);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.send("file=<?php echo $_GET['file']?>" + "&x=" + document.getElementById("x").value + "&y=" + document.getElementById("y").value + "&contents=" +  document.getElementById("results").innerHTML);
}
4

1 回答 1

0

您可以在提交时简单地调用 javascript 函数来删除标签:

function cleanText(str) {
    return String(str).replace(/\<[^\>]*>/g, '');
}

或者如果您也需要传递标签:

function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}
于 2013-02-19T16:41:04.830 回答