从 div 中获取值。

4

有没有一种方法可以从表单中的 div 元素中获取值,而不是使用输入框?

我知道这可能是一个愚蠢的问题,但我只想知道是否有可能。类似于 PHP DOM 的东西?

或者在提交时是否有可能将 div 更改为输入框?

谢谢!


仅仅出于学习目的,我想看看是否可能,并从中学习。 - Brian
6个回答

5

使用JavaScript,您可以在提交表单之前将div的内容放入(隐藏的)输入框中。

在jQuery中,它大致看起来像这样:

$('#myForm').submit(function() {
  $('#myHiddenInput').val($('#myDiv').html());
});

编辑:为什么你们在谈论AJAX?在这种情况下不需要使用AJAX!


内部的 $('#myForm').submit(); 是不必要的。只要函数不返回 false 或调用 e.preventDefault(),表单就会提交。按照您的方式,这将无限递归。 - calebds

3

以下是一个没有使用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 属性里会不会更好呢?这样它就可以处理所有类型的提交,比如在表单元素中按回车键。 - RustyTheBoyRobot

2

PHP代码在服务器端处理,因此原则上不能对客户端DOM进行PHP操作。

使用JavaScript(我认为最简单的是jQuery),您可以从DOM中提取信息并将其作为附加字段包含在表单提交中。

有很多关于使用jQuery添加到表单提交的问题,例如:

Safari / JQUery - 在页面上插入和更新隐藏字段


0
使用jQuery来发布div中的信息。非常简单,只需要几行代码即可。

0

你可以在 JavaScript 文件中使用 AJAX 调用。你只需要像这样调用 div id,例如 $("#yourdiv").val(); 这将给你 div id 中的任何值。 如果你提供一个更具体的例子并展示一些你的代码,我可能能够更具体地回答。 Jim


你不能在 div 上使用 val(),因为它没有值。 - Samy Dindane

0

有多种方法可以实现这个目标。

隐藏字段

您可以创建隐藏的输入字段,并在提交时使用JavaScript填充这些字段。

Ajax

例如,使用jQuery的AJAX库将数据序列化并通过AJAX进行发布。

样式输入字段,使其看起来像您所说的div

另一种选择是仅使用输入字段,并以不再像输入的方式对其进行样式设置。

如果您需要任何这些示例,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接