使用带有按键事件的原型函数
Using prototype function with key event
我想编写 ajax 原型函数,在为多个输入数据在公式中键入每个字符后将其转换为大写。
jQuery.fn.doKeyUpToUpper = function() {
$(this).val($(this).val().toUpperCase());
}
并将此函数与字段相关联:
$('#First').doKeyUpToUpper();
$('#Second').doKeyUpToUpper();
$('#Third').doKeyUpToUpper();
其中第一、第二和第三是
<input id=First value="" />
<input id=Second value="" />
<input id=Third value="" />
输入字段...
很遗憾,我不知道如何为每个字段添加 keyup 事件。
有人帮忙吗?
谢谢
你一路走好。但只定义了 "keyup" 上的行为,并没有实际设置事件。
jQuery.fn.doKeyUpToUpper = function () {
$(this).on('keyup', function () {
$(this).val($(this).val().toUpperCase());
});
};
// or a more dynamic alternative
jQuery.fn.toUpperOn = function (event) {
$(this).on(event, function () {
$(this).val($(this).val().toUpperCase());
});
};
// based upon the question in the comments
jQuery.fn.toUpperOn = function (event, callback) {
$(this).on(event, function () {
$(this).val($(this).val().toUpperCase());
if (callback) callback.apply(this, arguments);
});
};
$("#first").doKeyUpToUpper();
$("#second").toUpperOn('keyup');
$("#third").toUpperOn('keyup', function (event) {
console.log(this.id, this.value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="first" type="text" />
<input id="second" type="text" />
<input id="third" type="text" />
查看 jQuery.on
文档了解更多详细信息。
我想编写 ajax 原型函数,在为多个输入数据在公式中键入每个字符后将其转换为大写。
jQuery.fn.doKeyUpToUpper = function() {
$(this).val($(this).val().toUpperCase());
}
并将此函数与字段相关联:
$('#First').doKeyUpToUpper();
$('#Second').doKeyUpToUpper();
$('#Third').doKeyUpToUpper();
其中第一、第二和第三是
<input id=First value="" />
<input id=Second value="" />
<input id=Third value="" />
输入字段...
很遗憾,我不知道如何为每个字段添加 keyup 事件。
有人帮忙吗? 谢谢
你一路走好。但只定义了 "keyup" 上的行为,并没有实际设置事件。
jQuery.fn.doKeyUpToUpper = function () {
$(this).on('keyup', function () {
$(this).val($(this).val().toUpperCase());
});
};
// or a more dynamic alternative
jQuery.fn.toUpperOn = function (event) {
$(this).on(event, function () {
$(this).val($(this).val().toUpperCase());
});
};
// based upon the question in the comments
jQuery.fn.toUpperOn = function (event, callback) {
$(this).on(event, function () {
$(this).val($(this).val().toUpperCase());
if (callback) callback.apply(this, arguments);
});
};
$("#first").doKeyUpToUpper();
$("#second").toUpperOn('keyup');
$("#third").toUpperOn('keyup', function (event) {
console.log(this.id, this.value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="first" type="text" />
<input id="second" type="text" />
<input id="third" type="text" />
查看 jQuery.on
文档了解更多详细信息。