将 HTML 输入更改为文本区域并复制所有事件

Change an HTML input to textarea and copy over all the events

我正在尝试将 HTML 输入动态更改为文本区域字段并将其转换回文本字段。我可以使用下面给出的代码正确地做到这一点,但我无法复制文本字段上发生的事件。有没有办法可以将事件从文本字段复制到文本区域?如果有更好的方法,请告诉我。

JsFiddle

HTML:

<input id="textbox" type="text" name="fieldValue_0_3" onchange="alert('Hello WOrld');" value="this is a birthdate" tabindex="73">
<a href="#" id="change">Change</a>
<a href="#" id="changetext">Change To TextField</a>

干杯。

这样做

var textbox = $("#textbox"); $("#change").click(function () {
    $input = $("#textbox")
    $textarea = $("<textarea id='textarea'></textarea>").attr({
        id: $input.prop('id'),
        name: $input.prop('name'),
        value: $input.val(),
        onchange: $input.attr('onchange'),
        tabIndex: $input.prop('tabIndex')
    });
    $input.after($textarea).remove(); }); $("#changetext").click(function () {
    $textarea = $("#textbox")
    $input = $("<input></input>").attr({
        id: $textarea.prop('id'),
        name: $textarea.prop('name'),
        value: $textarea.val(),
        onchange: $textarea.attr('onchange'),
        tabIndex: $textarea.prop('tabIndex')
    });
    $textarea.after($input).remove(); });

Fiddle: Demo

注意:最好是两个不同的控件