jQuery 将输入类型=文本更改为文本区域

标签 jquery forms input

我有一个隐藏字段。在放置事件之后,它需要转换为“文本区域”。

这个:

      excerpt = $(parent).find('#excerpt').attr('type', 'textarea');
      excerpt.val('textarea');

产生

property cannot be changed

错误

这个方法: Change element type from hidden to input

marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'textarea').insertAfter(marker);
marker.remove();

使用 'textarea' 不执行任何操作,但仅适用于 'text'。添加:

.val('HERE')

致:

$('#myInput').detach().attr('type', 'textarea').val('HERE').insertAfter(marker);

行确实导致文本框的值发生变化,因此选择器正在工作并且 <span>元素正在正确插入和删除。

这是一个无法克服的安全问题吗?或者有办法做到吗?

最佳答案

由于 textareainput 是完全不同的元素,因此更容易创建一个新的 textarea 并删除 input。试试这个:

$input = $("#myHiddenInput")
$textarea = $("<textarea></textarea>").attr({
    id: $input.prop('id'),
    name: $input.prop('name'),
    value: $input.val()
});
$input.after($textarea).remove();

关于jQuery 将输入类型=文本更改为文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112409/

相关文章:

c++ - 在 C++ 上使用 eof

javascript - .parents() 在 Angular 中?

jquery - 如何删除div中的部分内容

javascript - 如何使用 class 而不是 jquery 函数的 ID

javascript - 使用 javascript/jquery 自动提交表单和检索表单数据

java - spring mvc 表单 :select tag

html - HTML中的三态复选框?

html - 默认输入元素大小

javascript - 寻找带有回调的 JS Map 控件

python - 简单的 python 代码不起作用