Javascript:如何将相同的按钮用于不同的文本输入
Javascript: How to use same button for different text input?
假设我有 2 个输入元素和 1 个按钮。我希望按钮一次为一个输入元素执行一个功能,根据当前正在聚焦的输入元素,但我不知道如何捕获每个元素的聚焦状态。
请考虑此示例:
<head>
<script type="text/javascript">
var id_box = document.createElement('input');
id_box.id = 'id_box';
id_box.type = 'text';
div.appendChild(id_box);
var weight_box = document.createElement('input');
weight_box.id = 'weight_box';
weight_box.type = 'text';
div.appendChild(weight_box);
function showLetter() {
if (id_box is being focused){
document.getElementById('id_box').value = 'ABC';
}
if (weight_box is being focused){
document.getElementById('weight_box').value = 'ABC';
}
}
</script>
</head>
<body>
<button onclick="showLetter()">ABC</button>
</body>
知道吗?谢谢。
单击该按钮的那一刻,文本字段无论如何都会失去焦点。 尝试为每个文本框捕获 OnFocus 方法,并为文本字段的实例设置一个变量。 这样你就有了最新的文本字段,你不需要你的if语句。
如果输入具有焦点,并且用户随后单击按钮,则输入将立即失去焦点,因此您无法检测到哪个输入具有所需的焦点。
您可以通过将事件处理程序附加到onFocus
事件的每个输入来创建存储"当前"输入的变量。
jsFiddle上的演示:http://jsfiddle.net/P58sx/1/
var current_input;
function showLetter() {
current_input.value = 'ABC';
}
function setCurrentInput() {
console.log(this);
current_input = this;
}
var id_box = document.createElement('input');
id_box.id = 'id_box';
id_box.type = 'text';
id_box.addEventListener("focus", setCurrentInput);
div.appendChild(id_box);
var weight_box = document.createElement('input');
weight_box.id = 'weight_box';
weight_box.type = 'text';
weight_box.addEventListener("focus", setCurrentInput);
div.appendChild(weight_box);
我建议尝试onFocus
事件处理程序。
一个技巧是声明一个变量并在每个字段的事件中onFocus
设置它。然后在按钮代码中,您可以检查在单击按钮之前聚焦的最后一个字段是什么。
相关文章:
- 用于选择/文本框操作的JavaScript
- 用于高级文本的格式化工具
- 将文本框中的值用于按钮窗体操作上的变量
- 文本编辑后,append函数不适用于文本区域
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- jQuery自动完成功能不适用于多个文本输入
- 用于用户内容的简单代码编辑器/文本格式化程序(在Rails中)
- Unicode字符串替换不适用于完整的变音符号阿拉伯文本
- 正则表达式,用于从html格式的字符串中提取文本
- 用于更改链接文本的字体颜色的代码
- 引导日期选取器不适用于文本框 asp.net
- 专门用于文本的幻灯片/不断播放/但带有“后退”,“停止”和“前进”按钮的图像文件
- 用于文本渐变的 jQuery 插件
- 用于文本输入的Javascript字符限制计数器函数
- 占位符-用于文本区域输入
- 用于文本区域字符计数的预定义函数
- 函数可用于文本输入,但不能用于数字输入
- 外部分配值时,更改不适用于文本框的事件
- 换行符不能用于文本区域替换
- 将愚蠢的引号转换为智能引号仅用于文本而非HTML代码