刷新文本框输出
Refreshing textbox output
我有一个简单的十进制到二进制转换器。
它的工作原理很简单,您在文本框中输入十进制数,然后单击按钮以获取结果,但我希望它是自动的,因此您不必每次都单击提交按钮,并自动刷新。我的代码是:
<div id="Conv" style="font:24px bold; display: none">
Decimaal naar binair.<br>
<input type="text" id="txtDec" maxlength="3"/>
<input type="button" value="Convert" onclick="document.getElementById('Converter2').innerHTML=ConvertToBinary(document.getElementById('txtDec').value);" />
<span id="Converter2"></span>
</div>
这是javascript部分:
function ConvertToBinary(dec) {
var bits = [];
var dividend = dec;
var remainder = 0;
while (dividend >= 2) {
remainder = dividend % 2;
bits.push(remainder);
dividend = (dividend - remainder) / 2;
}
bits.push(dividend);
bits.reverse();
return String('000000000' + bits.join("")).slice(-8);
}
的.keyup()
事件中的句柄转换
$('#txtDec').keyup(function(e) {
var converted = ConvertToBinary(this.value);
$('span#Converter2').text(converted);
});
您可以在keyup上运行代码
<input type="text" id="txtDec" maxlength="3" onkeyup="convert(this)" />
function convert(el) {
document.getElementById('Converter2').innerHTML=ConvertToBinary(el.value);
}
使用 .keyup() 并在用户完成输入后更改值(又名按回车键)
$('#txtDec').keyup(function(event) {
if (event.keyCode == 13){
var converted = ConvertToBinary(this.value);
$('span#Converter2').text(converted);
}
});
如果这个任务仅用于研究javascript,建议的选项就足够了。否则,让我补充一些一般性说明。如果您正在使用标准表单元素,例如输入和文本区域,则可以借助鼠标插入文本(我的意思是右键单击 ->粘贴)。这样,仅处理键控是不够的。通过听鼠标向上来处理每次鼠标点击也不是那么好主意。以编程方式更改字段怎么样?
我相信最好的方法是处理onchange事件,每次你改变内在价值和元素时都会触发该事件,并且元素将"不聚焦"。
在现代浏览器中,您可以使用oninput
事件,每次更改input
的内容时都会触发该事件。在较旧的浏览器(实际上是 IE<9)中,您可以使用onchange
事件,但在这种情况下,您需要在事件触发之前模糊input
。(仅在 IE 中,onpropertychange
事件可用,该事件还可以处理以编程方式对元素所做的更改。
在下面的代码片段中,我重写了您的ConvertToBinary()
函数,只是为了展示一种转换数字基数的替代方法。 Number.toString()
可用于将十进制数转换为 2 到 36 之间的任何基数,parseInt()
可用于将表示介于 2 和 36 之间的数字的字符串转换为小数。
document.getElementById('txtDec').addEventListener('input', function () {
var bin = parseInt(this.value, 10).toString(2),
digits = '';
if (!isNaN(bin) && bin.length < 9) {
digits = new Array(9 - bin.length).join('0') + bin;
}
document.getElementById('Converter2').innerHTML = digits;
});
jsFiddle的现场演示。
当然,您可以在传递给 addEventListener()
的匿名函数中使用原始ConvertToBinary()
,或者只能传递它的名称:
document.getElementById('txtDec').addEventListener('input', ConvertToBinary);
- 它在另一个函数中嵌套后不会输出文本
- 输出文本不't以正确格式显示
- 如何在Java程序中读取JavaScript输出文本
- 将jQuery参数发送到服务器端并创建输出文本文件
- PHP,X-SendFile:将文件与输出文本一起发送到浏览器(通过echo)
- 在
标记之前输出文本
- 如何在 html5 中替换输出文本框
- 替换 html5 中文本框中的输出文本
- 在正/负时更改输出文本颜色
- 量角器 - 如何在输出文本文件中生成执行报告或显示控制台.log消息
- 将表单字段输出到文本区域的 JavaScript 以输出文本区域结束,但随后立即清除自身
- 在输入框中单击时 - 在附近显示文本 - 在单击时输出文本消失
- Mirth 连接错误:“..不是 XML 对象“时尝试从数组输出文本
- 如何在单击位置旁边输出文本
- 使用JS Letting无法处理输出文本
- HTML-输出文本的元素
- 显示带换行符的输出文本区域
- 粘贴或以其他方式在Electron应用程序之外输出文本
- CoffeeScript:录制语音并输出文本
- 从返回JSON的url输出文本