diff --git a/src/attributes.js b/src/attributes.js index c239dd7f..5396a90e 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -165,7 +165,13 @@ jQuery.fn.extend({ return ret; } - return (elem.value || "").replace(rreturn, ""); + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; } return undefined; diff --git a/test/unit/attributes.js b/test/unit/attributes.js index c4ed7d30..56c398e5 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -611,6 +611,30 @@ test("val()", function() { equals( jQuery("