jQuery创建的表单字段在提交时返回“undefined”
Form fields created by jQuery return "undefined" upon submission
更新:我使用第一个评论者的 checkNo[] 建议修改了代码,因为我认为它可能会有所帮助,而且无论如何它都更优雅。
表单的初始硬编码字段组看起来几乎相同,除了我删除了"1",例如"checkNo1"现在只是"checkNo">
用于创建新字段组的 jQuery 现在只需复制初始代码:
var checksDiv = $('#checkForms');
var i = $('#checkForms p').length + 1;
var checkForm = $('#checkForms').html(); //COPY THE FIELD GROUP CODE
$('#addCheck').click(function() {
$(checkForm).appendTo(checksDiv);
$('#checkCount').val(i);
i++;
});
循环现在如下所示:
for (i=1;i <= Request.Form("checkNo").Count; i++){ // LOOP THROUGH CHECKS
thisCheck = Request.Form("checkNo")(i);
thisAmt = Request.Form("amt")(i);
thisInvoices = Request.Form("invoices")(i);
}
结果呢?它仍然未定义...好像jQuery生成的字段不存在一样。但他们是。我看到它们,我填写它们,我在html中看到它们......他们在那里,但是当我发布表格时,就像他们消失了一样。
vvvvv
我的表单中有一部分(用户可以在其中添加支票(,如下所示:
<div id="checkForms">
<p>
<label for="checkNo1">
<input type="text" id="checkNo1" size="20" name="checkNo1" value="" placeholder="Check Number" />
</label>
<label for="amt1">
| $<input type="text" id="amt1" size="20" name="amt1" value="" placeholder="Amount" />
</label>
<br/>
<label for="invoices1">
<textarea name="invoices1" id="invoices1" placeholder="Invoice Amt" cols="50" rows="10"></textarea>
</label>
</p>
<hr/>
</div>
<h3><a href="javascript:void(0)" id="addCheck">Add Another Check</a></h3>
<input type="hidden" id="checkCount" name="checkCount" value="1">
<input type="submit" name="submit" value="send" class="button sendit">
我有jQuery添加新字段,如下所示:
var checksDiv = $('#checkForms');
var i = $('#checkForms p').size() + 1;
$('#addCheck').click(function() {
$('<p><label for="checkNo' + i +'"><input type="text" id="checkNo' + i +'" size="20" name="checkNo' + i +'" placeholder="Check Number" /></label> | $<label for="amt' + i +'"><input type="text" id="amt' + i +'" size="20" name="amt'+ i +'" placeholder="Amount" /></label><br/><label for="invoices' + i +'"><textarea name="note" placeholder="Invoice Amt" cols="50" rows="10"></textarea></label><a href="javascript:void(0)" class="remCheck">Remove</a></p><hr/> ').appendTo(checksDiv);
$('#checkCount').val(i);
i++;
});
这工作正常,他们出现了。
然后在提交时,我正在访问这样的值:
for (i=1;i <= checkCount; i++){
thisCheck = Request.Form("checkNo"+i);
thisAmt = Request.Form("amt"+i);
etc....
第一组"硬编码"字段工作正常,但动态创建的所有内容都显示为"未定义"。我也试过这样的:
for (i=1;i <= checkCount; i++){
thisCheck = "checkNo"+i;
thisCheck = Request.Form(thisCheck);
etc....
并验证它是否正在请求正确的表单字段名称。
您发布的服务器端代码应该可以工作,但是您省略了有趣的etc....
。
硬编码部分中有一个名为 invoices1
的文本区域,但在动态部分中,您没有创建文本区域'invoices' + i
,文本区域的名称为 note
(不带索引(。
当您尝试使用与其他字段相同的过程访问这些文本区域时,它将失败。
相关文章:
- RequireJS向模块传递配置总是返回undefined
- JSON数组数据返回Undefined
- JavaScript”;.方法“;返回undefined
- jQuery可以't获取data-*属性值,返回undefined
- Javascript/JSON警报返回Undefined
- Javascript:firstChild对象返回undefined
- 当尝试使用ajax读取文件时,变量返回undefined
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- Json在nodeJs和AngularJs中返回undefined
- 为什么像 Firefox 和 Chrome 控制台中的 '}{' 这样的结构会返回 'undefined'?
- 使用 HTML 和 JavaScript 从表单访问值时返回 undefined
- 在 CoffeeScript 中,当尝试调用类中的方法 (@_methodName) 时,它会返回 undefined
- 解析承诺'当'返回undefined(Javascript)
- NodeJS:zlib.gunzip(body)错误地返回“undefined”
- window.open在chrome扩展中返回undefined
- jQuery.pr()返回undefined,而.attr()对数据-*的作用与预期一样
- 正在读取嵌套json,jquery返回undefined
- IIFE是否总是返回undefined
- $timeout包装$http.post返回undefined而不是promise