有没有一种方法可以从表单中的 div 元素中获取值,而不是使用输入框?
我知道这可能是一个愚蠢的问题,但我只想知道是否有可能。类似于 PHP DOM 的东西?
或者在提交时是否有可能将 div 更改为输入框?
谢谢!
使用JavaScript,您可以在提交表单之前将div的内容放入(隐藏的)输入框中。
在jQuery中,它大致看起来像这样:
$('#myForm').submit(function() {
$('#myHiddenInput').val($('#myDiv').html());
});
编辑:为什么你们在谈论AJAX?在这种情况下不需要使用AJAX!
$('#myForm').submit();
是不必要的。只要函数不返回 false 或调用 e.preventDefault()
,表单就会提交。按照您的方式,这将无限递归。 - calebds以下是一个没有使用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时,表单才会提交。它将
prepareSubmit
放在表单的 onsubmit
属性里会不会更好呢?这样它就可以处理所有类型的提交,比如在表单元素中按回车键。 - RustyTheBoyRobotPHP代码在服务器端处理,因此原则上不能对客户端DOM进行PHP操作。
使用JavaScript(我认为最简单的是jQuery),您可以从DOM中提取信息并将其作为附加字段包含在表单提交中。
有很多关于使用jQuery添加到表单提交的问题,例如:
你可以在 JavaScript 文件中使用 AJAX 调用。你只需要像这样调用 div id,例如 $("#yourdiv").val(); 这将给你 div id 中的任何值。 如果你提供一个更具体的例子并展示一些你的代码,我可能能够更具体地回答。 Jim
有多种方法可以实现这个目标。
隐藏字段
您可以创建隐藏的输入字段,并在提交时使用JavaScript填充这些字段。
Ajax
例如,使用jQuery的AJAX库将数据序列化并通过AJAX进行发布。
样式输入字段,使其看起来像您所说的div
另一种选择是仅使用输入字段,并以不再像输入的方式对其进行样式设置。
如果您需要任何这些示例,请告诉我。