4

有没有办法从表单中的 div 元素获取值而不是使用输入?

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

或者有没有办法在点击提交时将 div 更改为输入?

谢谢,

4

6 回答 6

5

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

它在 jQuery 中大致如下所示:

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

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

于 2012-06-01T19:28:20.370 回答
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 ,否则表单不会提交。它将div内容插入到隐藏的输入中。我认为这是最简单的解决方案。确保在表单之前加载脚本。

于 2012-06-01T19:41:44.103 回答
2

PHP 代码在服务器端处理,因此客户端 DOM 基本上不会有 PHP 操作。

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

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

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

于 2012-06-01T19:29:43.270 回答
0

使用 jQuery 在 div 中发布信息。做起来很简单,只有几行代码。

于 2012-06-01T19:29:40.150 回答
0

您可以在 javascript 文件中使用 ajax 调用。您需要做的就是调用 div id,例如 $("#yourdiv").val(); 这将为您提供 div id 中任何内容的值。如果你给出一个更具体的例子并展示你的一些代码,我可能会更具体。吉姆

于 2012-06-01T19:30:02.417 回答
0

有多种方法可以对此进行归档。

隐藏字段

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

阿贾克斯

使用例如 jQuery 的 AJAX 库来序列化数据并通过 AJAX 发布

样式输入字段,使它们看起来像您正在谈论的 div

另一种选择是只使用你习惯的输入字段,并以它们看起来不再像输入的方式设置它们的样式

如果您需要其中任何一个示例,请告诉我。

于 2012-06-01T19:32:16.123 回答