gpt4 book ai didi

javascript - 使用 Javascript 添加的 HTML 表单隐藏字段未发布

转载 作者:技术小花猫 更新时间:2023-10-29 12:53:14 25 4
gpt4 key购买 nike

我有一个表单,用户可以在其中输入链接,单击“添加链接”按钮,然后该链接(通过 jQuery)作为隐藏字段添加到表单中。问题是当我提交表单时它没有发布。这真的让我感到困惑。问题是,如果我将一个隐藏字段硬编码到表单中,它就会被发布,但我的功能由于某种原因无法正常工作。正如我在 Firebug 中看到的那样,隐藏字段确实已添加到我的表单中,但它只是没有随 POST 数据一起发送。

请注意,我在 Javascript 中使用一个数组来保存元素,直到表单被提交,这也会将它们以可见的方式发布,以便用户查看他们添加的内容。我在元素的“名称”字段上使用 [] 表示法,因为我希望将链接馈送到 PHP 中的数组中。

这是附加到我的表单的链接创建:

        function make_hidden_element_tag(item_type, item_content, item_id)
{
return '<input type="hidden" name="' + item_type + '[]" id="hidden_link_' + item_id + '" value="' + item_content + '"/>';

有没有人知道为什么这可能不会发布。如上所述,任何与上述几乎相同的硬编码标签都可以正常工作,只是这个标签不起作用。以下是我如何使用 jQUery 将标签添加到表单:

$('#link_td').append( make_hidden_element_tag('links', link, link_array.length - 1));

我使用的是 Kohana 3 框架,虽然我不确定这是否与此有任何关系,因为从 HTML 添加到页面和按下提交按钮开始它并没有真正做任何事情。

最佳答案

如果数据没有被发布到服务器,输入元素肯定没有被添加到表单。

尝试在提交表单之前执行以下代码:

<form onsubmit="return doBeforeSubmit(this);"> ... </form>

函数是...

function doBeforeSubmit(form)
{
var es = form.elements;
var l = es.length;

var msgs = [];

for(var idx = 0; idx < l; idx++)
{
var e = es[idx];
msgs.push('name=' + e.name + ', type=' + e.type + ', value=' + e.value;
}

alert(msgs.join('\n'));
return false;
}

如果您没有得到您的字段,则“输入”不会添加到表单中,而是添加到其他地方。

如果你确实得到了这个领域......我们需要更深入地挖掘。

关于javascript - 使用 Javascript 添加的 HTML 表单隐藏字段未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2854640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com