如何向动态表中的每个文本框添加UpperCase函数
How to add an UpperCase function to each textbox in a dynamic table?
我正在尝试创建一个动态表格的文本框,但我希望文本框转换为大写,每次我写。
有什么好主意吗??
目前我是这样做动态表的:
var n = 1;
function addRow(tableID,nroColumna) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
for(i=0;i<nroColumna;i++){
var cell = row.insertCell(i);
var element = document.createElement("input");
element.type = "text";
element.name = n+"0"+i;
element.size = "12";
element.id = n+"0"+i;
//element.onkeyup = function(){alert()};
cell.appendChild(element);
}
n++;
}
我试图做一个document.getElementById(element.id).value.toUpperCase()
,但我得到一个错误与一个空值的元素。id
任何帮助都非常感谢!
如果您对非JavaScript解决方案满意,您可以将此CSS
应用于您的输入:
text-transform: uppercase;
这将使文本从一开始就大写…
Darkajax的解决方案,工作,您可以将其定位到具有特定ID的表中的输入
#tableid input
{
text-transform: uppercase;
}
我测试了onkeyup函数激活的代码:
var n = 1;
function addRow(tableID,nroColumna) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
for(i=0;i<nroColumna;i++){
var cell = row.insertCell(i);
var element = document.createElement("input");
element.type = "text";
element.name = n+"0"+i;
element.size = "12";
element.id = n+"0"+i;
element.onkeyup = function(){alert(element.id);};
cell.appendChild(element);
}
n++;
}
那起作用了。但是,它使用最后一个元素。每次调用函数都会计算Id…所以,当我创建一行3个单元格时,每次我输入一个单元格,它都会提示"102",不管我输入的是哪个单元格。
这是因为onkeyup函数是动态的。它在keyup操作时被调用,而不是在创建对象时设置。所以它使用元素。在动作发生时存在的Id值,而不是第一次传递时的值。我希望这是有意义的。我在最近的一个项目中也遇到了这个问题。一种解决方案是为for循环的内部工作创建一个单独的函数:
var n = 1;
function createRow (n, i) {
var element = document.createElement("input");
element.type = "text";
element.name = n+"0"+i;
element.size = "12";
element.id = n+"0"+i;
element.onkeyup = function(){alert(element.id);};
return element;
}
function addRow(tableID,nroColumna) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
for(i=0;i<nroColumna;i++){
var cell = row.insertCell(i);
element = createRow(n, i);
cell.appendChild(element);
}
n++;
}
此代码提醒正确的元素。id值。
编辑:你可以修改onkeyup()行为:element.onkeyup = function(){document.getElementById(element.id).value = document.getElementById(element.id).value.toUpperCase();};
它应该是你想要的效果
如果使用jQuery,效果会是
$('.yourClass').val($(this).val().toUpperCase());
或
$('#yourId').css({'text-transform' : 'uppercase'})
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 选中单选框时,将文本添加到文本框中
- 为未标记的文本添加CSS样式
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 有没有办法将mouseOver上的个人文本添加到完整日历中
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 如何使用JavaScript将链接文本添加到电子邮件中
- 将动态验证文本添加到自定义jQuery验证规则中
- 将文本添加到每个数组元素的开头
- 单击将按钮中的文本添加到带有jQuery或JS的输入框中
- 通过按钮将不同的文本添加到文本区域-不起作用
- 如何为Fabric.js中的文本添加CSS属性
- 如何将预加载程序文本添加到jQuery Cycle 2中
- Javascript Regex exec 在向搜索文本添加属性/引号后冻结
- 如何在所有浏览器中向文本区域中的选定文本添加 标记
- jQuery将文本添加到放置在表格单元格中的图像中
- D3 垂直条形图为标签文本添加换行符
- 单击时从列表中将文本添加到文本框的方法
- 将文本添加到 D3 圆环图的中心
- 如何将非可变文本添加到javascript打印弹出窗口中