Javascript,为带有下标和上标的文本字段创建模板
Javascript, creating a template for a textfield with subscript and superscript
我对 JavaScript 相当陌生。在我对一些示例代码的实验中,我创建了一个包含表格的 html 文件。在其中一个表数据字段中,我有一个文本类型字段。有没有办法制作一个按钮,插入一个允许操作的预定义模板?又名我按下一个按钮"钱",该按钮将额外的格式化文本输入到"$0.00"。
所以例如
function input_button(){
var template = "$0.00"
var my_txt = document.getElementById("money");
my_txt.value += Template;
附带说明一下,如果我想使用下标和上标怎么办?我尝试使用 .sup() 和 .sub() 方法,但它只是插入标签,不会改变文本的美感。 (所以在表中,它看起来像
<sub> things to be subscript </sub>
反对 要下标的东西
我不熟悉任何模板文本格式的方法,因此您可能只需要在逻辑中进行硬编码。至于你的第二个问题,当你使用 .sup 和 .sub 方法时,你是否在内部 html 中插入结果?例如:
function helloWorldSuper(){
var str = "Hello World";
var result = str.sup();
document.getElementById("tableCell").innerHTML = result;
}
要将掩码应用于输入字段以便使用模板自动格式化值,您需要收听输入按键事件并根据掩码进行处理。有一些脚本已经这样做了,比如jQuery的屏蔽输入插件。
如果您希望输入文本仅将$0.00
作为初始值,则很容易做到。您可以通过JavaScript创建行并将其插入表中,如下所示:
<html>
<body>
<button id="insertRowButton">Insert</button>
<table>
<thead>
<tr><th>Text</th><th>Input</th></tr>
</thead>
<tbody id="tableBody">
</tbody>
</table>
<script>
(function() {
// Elements used
var tableBody = document.getElementById('tableBody'),
insertRowButton = document.getElementById('insertRowButton');
// Create a new row template
function createRow() {
var tr = document.createElement('tr'),
tdText = document.createElement('td'),
tdInput = document.createElement('td'),
sub = document.createElement('sub'),
input = document.createElement('input'),
text = document.createTextNode('This is a text node '),
subscriptText = document.createTextNode('with subscript');
sub.appendChild(subscriptText);
tdText.appendChild(text);
tdText.appendChild(sub);
input.value = '$0.00';
tdInput.appendChild(input);
tr.appendChild(tdText);
tr.appendChild(tdInput);
return tr;
}
// Insert a new row into table
function insertRow() {
var tr = createRow();
tableBody.appendChild(tr);
}
// Bind events
insertRowButton.addEventListener('click', insertRow);
}());
</script>
</body>
</html>
这是JSFiddle:http://jsfiddle.net/ck7qargw/
我有点困惑,但我假设您正在尝试通过 innerHTML 添加 sup/sub 脚本?
var template = "<span class='supStyle'>$0.00</span>"
.CSS:
.supStyle{vertical-align:top;font-size:smaller;}
或者,您可以使用 forloop:
mySup = document.getElementsByClassName("supStyle");
for (var i=0;i<mySup.length;i++)
{
mySup[i].style.verticalAlign = "sub";
mySup[i].style.fontSize = "smaller";
}
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 模拟文本输入字段上的退格键
- 输入字段中的可持续文本
- 未获取文本输入字段的值
- 没有文本安全性的密码字段
- 将禁用的输出字段更改为带前缀的文本
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 使用SAPUI5中的“文本”字段显示正确的“日期”
- Kendo,如何将MVVM文本:字段绑定到远程DataSource