Wiem, że to stary przedmiot, ale jest to pierwszy w wyszukiwarce Google i odpowiedź nie jest całkowicie rację ...
Na przykład, jeśli spróbujesz w konsoli $('#myinput').val()
, powinieneś otrzymać wartość #myinput.
Ale jeśli nie $('#myinput').val(undefined)
należy ustawić wartość #myinput! ( z aktualną odpowiedź i komentarze o tym, że nie będzie ustawić wartość #myinput)
Oto odpowiedź, że zmodernizowane użyj 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);
jeśli chcesz przejść wszystkie argumenty można również użyć zastosować
(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);
Mam nadzieję, że to pomoże!
Przyjmuję założenie, że zdarzenie .change() nie działa tutaj dla ciebie? –
@ Mark: Kiedy ustawiam wartość elementów wykonując $ ("# foo"). Val ("someValue") zdarzenie .change() nie zostanie wywołane. Wydaje się, że wyzwalana jest tylko wtedy, gdy wartość zmieniana jest przez użytkownika w GUI/przeglądarce. – 7wp
$ ('# foo'). Val ("someValue"). Trigger ("change"); może być użyteczne, aby łańcuch spustu tam ... –