每次用户按+时,我都会尝试在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:很遗憾,只有IE支持某些execCommand
,这就是为什么我没有使用
document.execCommand ('InsertInputCheckbox', false, null);
答案 0 :(得分: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]);
}
}
修改了一些优化代码, fiddle for solution
答案 1 :(得分: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);