0

我有一个表单,用户可以在其中手动输入一些文本。然后我想让用户通过 AJAX 从数据库中选择一个标签,这与标签建议在 SO 问题表单中的显示方式不同。虽然 ajax 调用放置标签的 div 位于表单内,但它似乎没有注册,并且表单没有拾取标签。我是否在我的代码中遗漏了一些东西,这是不可能的,或者,如果不可能,有更好的方法来做到这一点?感谢您的任何建议。

这是代码:

html

<form method="post" action="enterdata.php">
<input type="text" name="text">Enter text here.
<div id="inserttags"></div><a href="javascript:void(0);" onclick="getTags()";>Get tags</a>
<form type="button" name="submit" value="Enter Text and Tag">
</form>

javascript

getTags() { 
various Ajax goes here, then
//following line inserts value into div of html
    document.getElementById("inserttags").innerHTML=xmlhttp.responseText;
// a bit more ajax, then following pulls tag from db 
xmlhttp.open("GET","findtags.php",true);
xmlhttp.send();
} //end function

php

//gettags.php
//first pull tag from db.  Then:
echo 'input type="text" name="tag" value= "html">Enter tag';
//above output gets inserted in div and is visible on page.

虽然上面的输出在页面上可见,但当您单击“输入文本和标签”提交表单时,表单似乎没有拾取它。

4

2 回答 2

1

输入标签看起来不完整。试试<input type="text" name="tag" value= "html" />Enter tag。此外,单击事件附加到链接标记Get tags,因此您需要单击该链接以进行 ajax 函数调用。

编辑:

 $('#inserttags').append(xmlhttp.responseText));
于 2012-09-22T15:16:15.397 回答
0

经过更多的研究和深思熟虑,我不认为你可以做我想做的事......使用原生 html 表单来捕获 javascript 输出,即使表单内有 div。相反,执行此操作的方法是使用 javascript 捕获文本字段,然后将其放置在 ajax 内的表单中,作为隐藏值与标签一起输出到浏览器。然后用户提交带有文本和标签的表单,而不是使用原始 html,而是使用 ajax 输出中的按钮或链接。如果有人知道更好的方法,我会更正,但这种方法会起作用,并且 html 表单似乎无法识别 javascript 插入的 div 中的值。

于 2012-09-22T23:55:28.157 回答