【发布时间】:2011-11-03 02:02:49
【问题描述】:
我有一个页面,它通过 ajax 动态引入表单并将其显示在模态 div 中(位于覆盖整个页面的覆盖 div 之上)。这是为了让他们在窗口关闭之前保存某些数据。除了一件事,一切都很好。
$('#save_close_form').find('*[name]').each(function(index, form_element) {
var cfe = (form_element.jquery == undefined ? $(form_element) : form_element);
console.log(cfe.attr('name') + " => " + cfe.attr('value'));
if (cfe.attr('name').match(/data\[/)) {
if (cfe.attr('type') == 'checkbox') {
if (cfe.attr('checked')) {
map[cfe.attr('name')] = 'on';
}
else {
map[cfe.attr('name')] = '';
}
}
else if (cfe.attr('type') == 'radio') {
// only get checked radio buttons
if (cfe.attr('checked')) {
map[cfe.attr('name')] = cfe.attr('value');
}
}
else {
map[cfe.attr('name')] = cfe.attr('value');
}
}
});
else {} 子句末尾的部分触发TextArea 和input type="text" 元素,但由于某种原因,它总是将cfe.attr('value'); 视为undefined 的TextArea。我为此使用 FF6.0 和 jQuery 1.6。
【问题讨论】:
-
你为什么不使用
cfe.val()? -
在此代码的先前版本中,我尝试过,但它从未奏效。奇怪的是,直到最近我将 JQ 从 1.3 升级到 1.6 时,上面的代码都可以正常工作