有没有办法从表单中的 div 元素获取值而不是使用输入?
我知道这是一个愚蠢的问题,但我只想知道它是否可能。像 PHP DOM 之类的东西?
或者有没有办法在点击提交时将 div 更改为输入?
谢谢,
使用 Javascript,您可以在提交表单之前将 div 的内容放入(隐藏的)输入中。
它在 jQuery 中大致如下所示:
$('#myForm').submit(function() {
$('#myHiddenInput').val($('#myDiv').html());
});
编辑:你们为什么谈论 AJAX?在这种情况下不需要使用 AJAX!
这是一个没有 jQuery的 JavaScript 解决方案:
<script>
function prepareSubmit() {
var payload = document.getElementById("target").innerHTML;
document.getElementById("divContents").value = payload;
return true;
}
</script>
标记:
<form name="test">
<div id="target">Payload</div>
<input type="hidden" id="divContents" name="divContents" />
<input type="submit" onclick="return prepareSubmit()" value="submit" />
</form>
onclick 函数在提交事件之前运行。prepareSubmit
实际上,除非返回 true ,否则表单不会提交。它将div
内容插入到隐藏的输入中。我认为这是最简单的解决方案。确保在表单之前加载脚本。
PHP 代码在服务器端处理,因此客户端 DOM 基本上不会有 PHP 操作。
使用 JavaScript(最简单的 jQuery 恕我直言),您可以从 DOM 中提取信息并将其作为附加字段包含在表单提交中。
有很多关于 SO 的问题涉及使用 jQuery 添加到表单提交,例如
使用 jQuery 在 div 中发布信息。做起来很简单,只有几行代码。
您可以在 javascript 文件中使用 ajax 调用。您需要做的就是调用 div id,例如 $("#yourdiv").val(); 这将为您提供 div id 中任何内容的值。如果你给出一个更具体的例子并展示你的一些代码,我可能会更具体。吉姆
有多种方法可以对此进行归档。
隐藏字段
您可以创建隐藏的输入字段并在提交时使用 javascript 填充这些字段
阿贾克斯
使用例如 jQuery 的 AJAX 库来序列化数据并通过 AJAX 发布
样式输入字段,使它们看起来像您正在谈论的 div
另一种选择是只使用你习惯的输入字段,并以它们看起来不再像输入的方式设置它们的样式
如果您需要其中任何一个示例,请告诉我。