Добрый день ув. гуру JS. Подскажите пожалуйста как исправить данный баг.
Скачал скрипт календарика, оч симпатичный. Работает он по принципу такому:
<input type="text" name="thedate" size="17" value="" />
<input type="button" name="button" value="..." onclick="displayCalendar(thedate,'yyyy-mm-dd',this)" />
Проблема в том что у меня не одно поле для календаря а несколько и т.к. я работаю с php мне хотелось бы передавать данные имени сразу в []. Пример:
<input type="text" name="thedate['. $row-> id .']" size="17" value="" />
<input type="button" name="button" value="..." onclick="displayCalendar(thedate['. $row-> id .'],'yyyy-mm-dd',this)" />
Но вот когда передаю квадратные скобки "[]" то не хочет работать
А если например передаю thedate_['. $row-> id .'].
Подскажите пожалуйста как реализовать это с квадратными скобками! Спасибо за внимание!
Функция
displayCalendar:
function displayCalendar(inputField,format,buttonObj,displayTime,timeInput)
{
if(displayTime)calendarDisplayTime=true; else calendarDisplayTime = false;
if(inputField.value.length>6){ //dates must have at least 6 digits...
if(!inputField.value.match(/^[0-9]*?$/gi)){
var items = inputField.value.split(/[^0-9]/gi);
var positionArray = new Object();
positionArray.m = format.indexOf('mm');
if(positionArray.m==-1)positionArray.m = format.indexOf('m');
positionArray.d = format.indexOf('dd');
if(positionArray.d==-1)positionArray.d = format.indexOf('d');
positionArray.y = format.indexOf('yyyy');
positionArray.h = format.indexOf('hh');
positionArray.i = format.indexOf('ii');
this.initialHour = '00';
this.initialMinute = '00';
var elements = ['y','m','d','h','i'];
var properties = ['currentYear','currentMonth','inputDay','currentHour','currentMinute'];
var propertyLength = [4,2,2,2,2];
for(var i=0;i<elements.length;i++) {
if(positionArray[elements[i]]>=0) {
window[properties[i]] = inputField.value.substr(positionArray[elements[i]],propertyLength[i])/1;
}
}
currentMonth--;
}else{
var monthPos = format.indexOf('mm');
currentMonth = inputField.value.substr(monthPos,2)/1 -1;
var yearPos = format.indexOf('yyyy');
currentYear = inputField.value.substr(yearPos,4);
var dayPos = format.indexOf('dd');
tmpDay = inputField.value.substr(dayPos,2);
var hourPos = format.indexOf('hh');
if(hourPos>=0){
tmpHour = inputField.value.substr(hourPos,2);
currentHour = tmpHour;
if(currentHour.length==1) currentHour = '0'
}else{
currentHour = '00';
}
var minutePos = format.indexOf('ii');
if(minutePos>=0){
tmpMinute = inputField.value.substr(minutePos,2);
currentMinute = tmpMinute;
}else{
currentMinute = '00';
}
}
}else{
var d = new Date();
currentMonth = d.getMonth();
currentYear = d.getFullYear();
currentHour = '08';
currentMinute = '00';
inputDay = d.getDate()/1;
}
inputYear = currentYear;
inputMonth = currentMonth;
if(!calendarDiv){
initCalendar();
}else{
if(calendarDiv.style.display=='block'){
closeCalendar();
return false;
}
writeCalendarContent();
}
returnFormat = format;
returnDateTo = inputField;
positionCalendar(buttonObj);
calendarDiv.style.visibility = 'visible';
calendarDiv.style.display = 'block';
if(iframeObj){
iframeObj.style.display = '';
iframeObj.style.height = '140px';
iframeObj.style.width = '195px';
iframeObj2.style.display = '';
iframeObj2.style.height = '140px';
iframeObj2.style.width = '195px';
}
setTimeProperties();
updateYearDiv();
updateMonthDiv();
updateMinuteDiv();
updateHourDiv();
}