Я знаю, что это старая тема, но она первая в поиске Google, и ответ не совсем правильный ...
Например, если вы попытаетесь в консоли $('#myinput').val()
, вы должны получить значение #myinput.
Но если вы сделаете $('#myinput').val(undefined)
, вам следует установить значение #myinput! (С текущим ответом и его комментариями вы не установите значение #myinput)
Вот обновленный ответ, который использует arguments
.
(function ($) {
var originalVal = $.fn.val;
$.fn.val = function(value) {
if (arguments.length >= 1) {
// setter invoked, do processing
return originalVal.call(this, value);
}
//getter invoked do processing
return originalVal.call(this);
};
})(jQuery);
, если вы хотите передать все аргументы, которые вы также можете использовать, примените
(function ($) {
var originalVal = $.fn.val;
$.fn.val = function(value) {
if (arguments.length >= 1) {
// setter invoked, do processing
} else {
//getter invoked do processing
}
return originalVal.apply(this, arguments);
};
})(jQuery);
Надеюсь, это поможет!