1

ユーザーが+を押すたびに、JavaScriptでチェックボックスを作成しようとしています。

function Selected(e) {
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);

    if(character=='+'){
        var t1= new Array();

        t1[0]=document.createElement('input');
        t1[0].type='checkbox';
        t1[0].name='checkbox1';
        t1[0].value = "value";
        document.getElementById('myDiv').appendChild(t1[0]);

    }
}

ただし、次の行にチェックボックスと + も表示されます。+ を削除して、同じ行にチェックボックスのみを表示する方法はありますか?

PS:残念ながら、一部execCommandは IE でしかサポートされていないため、使用しませんでした。

document.execCommand ('InsertInputCheckbox', false, null);
4

2 に答える 2

1

次のように追加します。

function Selected(e) {
    e = e || window.event;
    var code = e.keyCode || e.which;

    if(String.fromCharCode(code) == '+') {
        var t1 = [];

        t1[0] = document.createElement('input');
        t1[0].type='checkbox';
        t1[0].name='checkbox1';
        t1[0].value = "value";
        document.getElementById('myDiv').appendChild(t1[0]);
    }
}

いくつかの最適化のために修正されたコード 、解決策のためのフィドル

于 2012-09-24T09:47:53.973 に答える
0

私はあなたのコードを少しきれいにして、あなたの閲覧のためにフィドルを追加しました: http://jsfiddle.net/jLEa5/

    function Selected(e) {
        var code, evt, character;

        evt = e || window.event;
        if (evt.keyCode) {
            code = evt.keyCode;
        }
        else if (evt.which) {
            code = evt.which;
        }

        character = String.fromCharCode(code);

        if(character=='+') {
            var t1 = [], el;

            el = document.createElement('input');
            el.type='checkbox';
            el.name='checkbox1';
            el.value = "value";
            t1.push(el);
            document.getElementById('myDiv').appendChild(t1[0]);
        }
    }


window.addEventListener('keypress', Selected);​
于 2012-09-24T09:50:30.710 に答える