Tus*_*rtz 6 html javascript jquery
有没有办法覆盖.val()输入的属性.
例如,在jQuery获取.val()调用值之前,运行一些代码,如剥离HTML标记.
Ion*_*zău 16
当然,但我不会真的推荐它,除非你真的想在页面上做一些疯狂的科学(比如添加一些自定义代理来干扰你无法控制的代码).相反,您可以通过将其附加到$.fn对象来创建自己的函数(请参见下文).
尽管如此,如果你真的想要覆盖它,这里是如何:只需覆盖$.fn.val方法:
var $input = $("input")
// Before overriding
console.log($input.val())
// Override
// 1. Create a copy of the function
const oldValFn = $.fn.val
$.fn.val = function () {
// 2. Run your custom code
console.log("Called val");
// 3. Call the native jQuery
// function and return the result
return oldValFn.apply(this, arguments);
};
// After overriding
console.log($input.val())Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="42" />Run Code Online (Sandbox Code Playgroud)
您可以创建自定义(基本上是一个小插件),而不是覆盖:val
var $input = $("input")
$.fn.customVal = function () {
var value = this.val();
// Run your custom code
// e.g. append some data
value = "The value is: " + value
return value;
};
// Call it
console.log($input.customVal())Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="42" />Run Code Online (Sandbox Code Playgroud)