Je sais qu'il est un vieux sujet, mais il est d'abord dans la recherche Google et la réponse est tout à fait raison ...
Par exemple, si vous essayez dans la console $('#myinput').val()
, vous devriez obtenir la valeur de #myinput.
Mais si vous $('#myinput').val(undefined)
vous devez définir la valeur de #myinput! ( Avec la réponse actuelle et les commentaires de celui-ci, vous ne définissez la valeur de #myinput)
Voici une réponse améliorée qui utiliser 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);
si vous voulez passer tous les arguments que vous pouvez également utiliser appliquer
(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);
Je l'espère aider!
Je fais l'hypothèse que l'événement .change() ne fonctionne pas pour vous ici? –
@Mark: Lorsque je définis la valeur des éléments en faisant $ ('# foo'). Val ('someValue') l'événement .change() n'est pas déclenché. Il semble seulement être déclenché lorsque la valeur est modifiée par l'utilisateur sur l'interface graphique/navigateur. – 7wp
$ ('# foo'). Val ('someValue'). Trigger ('change'); Peut-être utile d'enchaîner le trigger là-dedans alors ... –