jQuery: The Write Less, Do More JavaScript Library

Ticket #2076 (closed bug: fixed)

Opened 5 months ago

Last modified 5 months ago

$.trim Error: (text || "").replace is not a function

Reported by: apaella@… Assigned to: anonymous
Type: bug Priority: major
Milestone: 1.2.2 Component: core
Version: 1.2.1 Keywords:
Cc: Needs: Review

Description

call $.trim($('#id').val()) over a #id empty input throws an Error: (text "").replace is not a function

$('#id').val() == []

and ([] "") is not a string...

Attachments

index.html (511 bytes) - added by apaella@… 5 months ago.
a live example

Change History

Changed 5 months ago by apaella@…

a live example

Changed 5 months ago by davidserduke

  • status changed from new to closed
  • resolution set to fixed

Fixed in [4220].

Actually $.trim hasn't changed since 1.2.1 (and probably earlier). This problem was with val() and your test case. The test case doesn't wait till the document is ready so $("#foo").length == 0 as you noted. If you put the code inside

$(document).ready(function(){
    /* code here */
});

it will work fine.

But as it turned out this was a good test since val was incorrectly returning an empty array instead of undefined as it used to. One other thing, just for completeness, is your example has an input with type="input" but to my knowledge there is no such input type. Firefox converts that to type="text". I'm not sure what other browsers would do.

Changed 5 months ago by apaella@…

ops, sorry fom my double mistake :D

thanks for the patch.

great job!

Note: See TracTickets for help on using tickets.