相关疑难解决方法(0)

使用javascript动态添加表单元素 - 不提交

编辑:我通过从头开始修复问题.很抱歉浪费你们所有的时间.如果你有这种倾向,请投票结束.

当通过javascript添加输入字段时,我无法在表单中获取实际数据.这些字段显示在正确的位置,但是当我在服务器端执行var_dump(fieldname)时,没有任何内容出现.使用Live HTTP标头检查告诉我浏览器没有尝试提交动态添加的表单字段.

我是否需要以某种方式将动态创建的表单输入"附加"到表单中?

我的代码:

HTML

<form id="att_form" method="post" name="add_attachments" enctype="multipart/form-data" action="#">
<-- below input to prove form submits, just not the dyn added elements -->
<input name="data[one]" type="text" />
<div id="add_fields"></div>
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

function addFormField()
{
 var id = 1;
 var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";
 $("#add_fields".append( htm );
}
Run Code Online (Sandbox Code Playgroud)

当我提交表单时,我的输入名为data [one]显示为POSTd值,但添加addFormField()的输入不显示.它们在HTML中显示在正确的位置,但不要POST.我是否需要将元素作为子元素附加到我的表单元素以使其提交?

我已经看到使用javascript添加提交表单输入字段,这是我想要将数据专门附加到表单子项的地方,但这需要对我的CSS进行一些重组.所以,我希望我能在上面的代码中做到这一点很简单.

提前致谢!

编辑:修正了错别字,但仍无法正常工作.我决定使用上面SO链接中讨论的库免费JS方法,因为它工作正常.谢谢你的帮助!

html javascript php jquery

6
推荐指数
1
解决办法
5583
查看次数

JQuery Ajax表单和动态创建的表单元素不提交

我正在编写一个表单,当更改选择列表时,会动态加载一些文本输入元素.

问题是,当我提交表单时,这些元素不会发布到发布到服务器的数据中.

我需要做些什么才能将这些动态创建的元素"放入"要提交的表单中?

代码是这样的:

$("#my_select_id").change(function() {
    $.ajax({
        type: "GET",
        url: "some-url/" + $("#played_number_game_id").children("option:selected").val(),
        async: false, 
        dataType: "html",
        error: function(XMLHttpRequest, status, errorThrown) {
            alert("oh no!");
            alert(status);
        },
        success: function (data, status) {
            $("#parent-element").html("");
            $("#parent-element").append(data);
        },
        complete: function() {
        }
    });

    $("#my_form_submit").click(function() {
        $("#my-form").ajaxSubmit({ clearForm: true }); 
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

ajax调用返回的html是:

<input id="my-form_e_1" class="number-input" type="text"/>
<input id="my-form_e_2" class="number-input" type="text"/>
Run Code Online (Sandbox Code Playgroud)

如果我在调用ajax方法后使用firebug查看页面,动态加载的html就在层次结构中,它应该是...即它在表单中.

但是当我单击提交按钮时,只会发布ajax调用之前存在的表单元素.

有任何想法吗?

ajax jquery jquery-forms-plugin

4
推荐指数
1
解决办法
5871
查看次数

标签 统计

jquery ×2

ajax ×1

html ×1

javascript ×1

jquery-forms-plugin ×1

php ×1