Ticket #8480 (closed bug: fixed)

Opened 2 years ago

Last modified 2 years ago

Datepicker 1.8.22 escaped id does not work

Reported by: jakecigar Owned by:
Priority: minor Milestone: 1.8.23
Component: ui.datepicker Version: 1.8.22
Keywords: Cc:
Blocking: Blocked by:

Description

This simple datepicker does not work. It works with a simple id. (it worked with 1.8.21)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Untitled Document</title>
		<link href="http://jquery-ui.googlecode.com/svn/tags/1.8.22/themes/pepper-grinder/jquery-ui.css"
		rel="stylesheet" type="text/css" />
		<script src="http://jquery-ui.googlecode.com/svn/tags/1.8.22/jquery-1.7.2.js"></script>
		<script src="http://jquery-ui.googlecode.com/svn/tags/1.8.22/ui/jquery-ui.js"></script>
		<script type="text/javascript">
			$(function () {
				$('#date\\[123\\]').datepicker();
			});
		</script>
		<style type="text/css">
			.ui-widget
			{
				font-size: .8em;
			}
		</style>
	</head>
	<body>
		<input type="text" id="date[123]" />
	</body>
</html>

 http://forum.jquery.com/topic/datepicker-not-working-with-special-characters-in-id-field#14737000003533919

Change History

comment:1 Changed 2 years ago by Scott González

  • Status changed from new to closed
  • Resolution set to fixed

Datepicker: Unescape double escaped ids when handling events. Fixes #8480 - Datepicker 1.8.22 escaped id does not work.

Changeset: 30b579f598a3abdc9b0b7ad18bc76c8b5438d5ca

comment:2 Changed 2 years ago by Scott González

Datepicker: Unescape double escaped ids when handling events. Fixes #8480 - Datepicker 1.8.22 escaped id does not work. (cherry picked from commit 30b579f598a3abdc9b0b7ad18bc76c8b5438d5ca)

Changeset: b92965a78121534c113b1d717a75cee728548520

comment:3 Changed 2 years ago by scott.gonzalez

  • Milestone changed from 1.9.0 to 1.8.23

comment:4 Changed 2 years ago by crimsondr

In the current fix you remove the double backslash. But I think a better fix would be to modify this line:

var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars

to

var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\$1'); // escape jQuery meta chars

Looks like the double backslash is being added and then removed for no reason. Should just not add it in the first place.

Last edited 2 years ago by crimsondr (previous) (diff)

comment:5 Changed 2 years ago by tj.vantoll

#7779 is a duplicate of this ticket.

Note: See TracTickets for help on using tickets.