Lo so che è un vecchio argomento ma è prima in Ricerca Google e la risposta non è completamente a destra ...
Ad esempio, se provi nella console $('#myinput').val()
dovresti ottenere il valore di #myinput.
Ma se lo fai $('#myinput').val(undefined)
è necessario impostare il valore di #myinput! ( Con la risposta attuale e le osservazioni di esso, non sarà possibile impostare il valore di #myinput)
Ecco una risposta aggiornata che utilizzare 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);
se si desidera passare tutti gli argomenti che si possono anche usare applicare
(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);
spero che aiuta!
fonte
2014-09-17 22:08:13
Suppongo che l'evento .change() non funzioni per voi qui? –
@Mark: Quando imposto il valore degli elementi facendo $ ('# foo'). Val ('someValue') l'evento .change() non viene attivato. Sembra solo essere attivato quando il valore viene modificato dall'utente sulla GUI/Browser. – 7wp
$ ('# foo'). Val ('someValue'). Trigger ('change'); potrebbe essere utile inserire il trigger qui dentro ... –