jQuery .attr('value')为文本区域返回undefined

Der*_*rek 2 jquery undefined attr

我有一个页面,它通过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');
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

在最后的else {}子句中的部分触发器TextAreainput type="text"元素,但由于某种原因,它总是能看到cfe.attr('value');作为undefinedTextArea.我正在使用FF6.0和jQuery 1.6.

JJ.*_*JJ. 13

尝试.val()而不是.attr('value').

<textarea>没有value属性(文本在标签之间,而不是在value=""),但我相信.val()会检索它.