什么是jQuery或javaScript语法使函数只在活动/聚焦输入/按钮/文本区域工作?
我是一个初学者和自利的网络编码器 我一直在测试、询问、重新测试、尝试、阅读javaScript中的不同功能解决方案,并将其转换为一个在线表单,一旦我完成,该表单将包含大量的什么是jQuery或javaScript语法使函数只在活动/聚焦输入/按钮/文本区域工作?,javascript,jquery,function,syntax,webforms,Javascript,Jquery,Function,Syntax,Webforms,我是一个初学者和自利的网络编码器 我一直在测试、询问、重新测试、尝试、阅读javaScript中的不同功能解决方案,并将其转换为一个在线表单,一旦我完成,该表单将包含大量的 我对函数的当前状态相当满意,这些函数基于几个js事件。示例代码可能是(写得很有趣,所以在论坛上更容易阅读,实际代码显然只有一行): 因此,我的问题是如何使函数触发其他“dataInput”id 换言之: var d = document.getElementById('whichever dataInput that is
我对函数的当前状态相当满意,这些函数基于几个js事件。示例代码可能是(写得很有趣,所以在论坛上更容易阅读,实际代码显然只有一行):
因此,我的问题是如何使函数触发其他“dataInput”
id
换言之:
var d = document.getElementById('whichever dataInput that is active/focused');
谢谢 使用当前代码的最简单方法是:
onFocus="functionOne(this);"
…然后定义您的函数:
function functionOne(el) {
// el is the element in question, used e.g.:
alert(el.name);
}
在onFocus=…
中,浏览器将this
设置为相关元素,这样您就可以将其作为参数传递给函数。然后,您的函数直接使用它,而不必通过getElementById()
但是,既然您提到了jQuery,您可以从html中删除内联的onFocus
和其他onXYZ
处理程序,只需在JS中执行以下操作:
$("textarea").focus(function() {
// here this is the element in question, e.g.:
alert(this.value);
});
这为页面上的所有textarea定义了一个焦点处理程序——将其缩小为类为“classOne”do
$(“textarea.classOne”)
的textarea。在函数中,此
指的是聚焦元素。您可以使用.blur()
和keyup()
方法为代码中显示的其他事件分配处理程序。我的建议是使用属性选择器$('input[id^=“dataInput”]”)
,并使用jQuery的。
处理程序如下:
$('input[id^="dataInput_"]').on({
focus: function{
functionOne($(this));
},
blur: function(){
functionTwo($(this));
},
keyup: function(){
functionThree($(this));
}
});
以及功能:
functionOne(obj){
console.log(obj.val());
}
functionTwo(obj){
console.log(obj.val());
}
functionThree(obj){
console.log(obj.val());
}
“实际代码显然只有一行”-请注意,用这样的换行符格式化实际代码是没有问题的。这就是你想要的吗?@DavidThomas,在问题的标题OP中提到了
jQuery
?@Sheikh:啊,是的:我忘了看标签的标题。标记已编辑您可能需要仔细检查on
语句中的语法:它正在调用这些函数,而不是将它们指定为处理程序。@nnnnnn&Jai-我有更多与此问题相关的问题,我想给出更多的示例代码。“最好是开始一个新问题还是编辑原始问题?”他们想知道——除非附加问题与原始问题密切相关,否则我可能会开始一个新问题。(但这只是我的问题。)jQuery解决方案对于onFocus和onBlur函数非常有效,谢谢@nnnn!我相信只要花一点时间,我就可以使用onKeyUp函数。再次感谢您耐心的回复。还要感谢@Andre等人!
$('input[id^="dataInput_"]').on({
focus: function{
functionOne($(this));
},
blur: function(){
functionTwo($(this));
},
keyup: function(){
functionThree($(this));
}
});
functionOne(obj){
console.log(obj.val());
}
functionTwo(obj){
console.log(obj.val());
}
functionThree(obj){
console.log(obj.val());
}