【发布时间】:2011-01-09 07:26:58
【问题描述】:
我有以下问题 - 我正在使用 jQuery 向页面添加额外的输入表单。但是添加的行不会通过表单提交传递给服务器。
这是一行的 HTML:
<form name="form1" method="post" action="">
<div id="input1" class="clonedInput">
<label for="answer1" class="answer_label"> Answer: </label>
<input type="text" name="answer1" id="answer1" value="Answ1"/>
<label for="answer1pt"> Points: </label>
<input type="text" name="answer1pt" id="answer1pt" size="2" value="1"/>
我使用以下 JavaScript 进行克隆:
$('#btnAddAnswer').click(function() {
var num = $('.clonedInput').length;
var newNum = new Number(num + 1);
var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);
newElem.find(":nth-child(1)").attr('for', 'answer' + newNum);
newElem.find(":nth-child(2)").attr('id', 'answer' + newNum).attr('name', 'answer' + newNum).attr('value', '');
newElem.find(":nth-child(3)").attr('for', 'answer' + newNum + 'pt');
newElem.find(":nth-child(4)").attr('id', 'answer' + newNum + 'pt').attr('name', 'answer' + newNum + 'pt').attr('value', '');
$('#input' + num).after(newElem);
$('#btnDelAnswer').attr('disabled','');
if (newNum == 5)
$('#btnAddAnswer').attr('disabled','disabled');
});
所以基本上我首先克隆所有内容的 div,然后调整 id 和其他属性。
问题是,当运行这段代码时,页面上显示的一切似乎都正常,但是当我提交表单时,似乎只有第一个元素被发送到服务器。
这段代码在 Chrome 甚至 IE 中都能完美运行,但在 Firefox 中却不行。关于我做错了什么或可能导致此问题的任何建议?
提前致谢!
【问题讨论】:
-
尝试使用像 Firebug 这样的插件,这样你就可以看到 javascript 的 html 输出,看看有没有什么问题。
-
已经检查过了 - HTML 没问题。似乎是某种FF错误。任何想法如何使用其他 jQuery 方法做同样的事情?