JQuery通过每个循环为输入文本赋值

时间:2014-10-21 19:27:32

标签: javascript jquery

我有一个像这样的每个循环:

$.each(this, function (k, v) {

                        table += '<td><input type="text" name="' + k + '" id="' + k + '" /></td>';
                        $('#' + k).val(v);
                    });

我想要做的是用v中的内容填充输入类型,如果我这样做:

table += '<td><input type="text" name="' + k + '" id="' + k + '" value="' + v + '" /></td>';

使用正确的值填充值,但是当我提交表单时,它们将作为空字符串提交:

<script type="text/javascript">
    $("#form").submit(function (event) {
        $.post("/api/update/", $("#form").serialize(), alert('success'));
    });
</script>

我不知道创建输入后$('#' + k).val(v);为什么不起作用:(

1 个答案:

答案 0 :(得分:1)

将“/ api / update /”添加为表单的“action”属性并删除序列化逻辑,或者(更可能是你想要的)放置

event.preventDefault() 

位于提交处理程序的顶部。

问题是你的提交方法默认提交表单,发送一个请求表单的“action”属性,(在你的情况下,可能是当前页面)。因此,您的浏览器会在执行$ .post之前创建一个错误的提交。