We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 274
    • 108 Posts
    Всем привет, помогите решить проблемку со сниптом Eform.

    вызываю
    [!eForm? &formid=`FeedBackForm` &tpl=`eFBForm2`!]

    чанк eFBForm2
    <FORM NAME="FeedBackForm" id="FeedBackForm" >

    <center>
    <SELECT NAME="fbdataz" onChange="selectDate11()"></SELECT>
    <SELECT NAME="fbdatazg" onChange="selectDate22()"></SELECT>
    <SELECT NAME="fbdatazgod" onChange="selectDate33()"></SELECT>
    </CENTER>

    </FORM>

    в шаблоне в теге ппрописываю <body onLoad="setToday();selectDate1();" >

    в теге head прописыаю <SCRIPT LANGUAGE="JavaScript" src="assets/snippets/kalen.js"></SCRIPT>

    файл kalen.js- спомощью его выводится календарь

    var mes = new Array();
    var god = new Array();
    var array = [’январь’, ’февраль’, ’март’, ’апрель’, ’май’, ’июнь’,’июль’, ’август’, ’сентябрь’, ’октябрь’, ’ноябрь’, ’декабрь’ ];
    var flagg = 0;
    <!-- Begin

    function selectDate1() {

    var now1 = new Date();
    var day = now1.getDate();
    var month = now1.getMonth();
    var year = now1.getYear();
    if (year < 2000) // Y2K Fix, Isaac Powell
    year = year + 1900;
    displayCalendar1(month, year,day,array);
    }
    function displayCalendar1(month, year,day,array) {
    month5 =parseInt( month) ;
    year5 = parseInt(year);
    month = parseInt(month);
    year = parseInt(year);
    day = parseInt(day);
    var i = 0;
    var j = 0;
    var ij = day;

    var days = getDaysInMonth(month+1,year);
    for (i=day; i<=(days); i++) {
    document.FeedBackForm.fbdataz.options[j] = new Option(ij);
    ij++;
    j++;
    }
    var i = 0;
    var j = 0;
    var ij = year5;
    for (i=year5; i<=(year5+1); i++) {
    document.FeedBackForm.fbdatazgod.options[j] = new Option(ij);
    ij++;
    j++;
    }

    ttt7=12-month;

    var i = 0;
    for (i=0; i<(ttt7); i++) {
    ee=array[month5];
    mes[i]= month5;
    god[i]= year5;
    document.FeedBackForm.fbdatazg.options[i] = new Option(ee);
    if (month5 == 11) {
    month5 = 0;
    year5++;
    } else { month5++; }
    }

    }


    function selectDate22() {
    if (flagg == 0 ) {
    document.FeedBackForm.fbdataz.options.length =0;
    inde=document.FeedBackForm.fbdatazg.selectedIndex;
    month5 =parseInt(mes[inde]);
    year5 = parseInt(god[inde]);
    var days = getDaysInMonth(month5+1,year5);
    var i = 0;
    var j = 0;
    var ij = 1;
    for (i=0; i<=(days-1); i++) {
    document.FeedBackForm.fbdataz.options[j] = new Option(ij);
    ij++;
    j++;
    }

    if (inde==0)
    {
    document.FeedBackForm.fbdataz.options.length =0;
    var now2 = new Date();
    var day = now2.getDate();
    var ij = day;
    var i = 0;
    var j = 0;

    for (i=day; i<=(days); i++) {
    document.FeedBackForm.fbdataz.options[j] = new Option(ij);
    ij++;
    j++;
    }
    }
    }

    if (flagg == 1 ) {
    document.FeedBackForm.fbdataz.options.length =0;
    trey=document.FeedBackForm.fbdatazgod.value;
    tremon=document.FeedBackForm.fbdatazg.selectedIndex;

    dayst = getDaysInMonth(tremon+1,trey);

    i = 0;
    j = 0;
    ij = 1;
    for (i=0; i<=(dayst-1); i++) {
    document.FeedBackForm.fbdataz.options[j] = new Option(ij);
    ij++;
    j++;
    }
    }
    }




    function selectDate33() {

    var now14 = new Date();
    var day51 = now14.getDate();
    var month51 = now14.getMonth();
    var year51 = now14.getYear();

    if (year51 < 2000) // Y2K Fix, Isaac Powell
    year51 = year51 + 1900;
    year51 = parseInt(year51);
    month51 = parseInt(month51);
    year514 = parseInt(year51);

    xxxx=document.FeedBackForm.fbdatazgod.value;
    if (xxxx > year51 )
    {
    flagg=1;
    document.FeedBackForm.fbdataz.options.length =0;
    document.FeedBackForm.fbdatazg.options.length =0;
    var days = getDaysInMonth(1,year51);
    var i = 0;
    var j = 0;
    var ij = 1;


    for (i=0; i<=(days-1); i++) {
    document.FeedBackForm.fbdataz.options[j] = new Option(ij);
    ij++;
    j++;}

    for (i=0; i<(12); i++) {
    ee=array[i];
    document.FeedBackForm.fbdatazg.options[i] = new Option(ee);
    }

    }

    if (xxxx == year514 )
    {
    flagg=0;
    document.FeedBackForm.fbdataz.options.length =0;
    document.FeedBackForm.fbdatazg.options.length =0;
    selectDate1();
    setToday();
    }

    }






    function setToday() {
    var now = new Date();
    var day = now.getDate();
    var month = now.getMonth();
    var year = now.getYear();
    if (year < 2000) //
    year = year + 1900; //
    this.focusDay = day;


    displayCalendar(month, year);
    }
    function isFourDigitYear(year) {
    if (year.length != 4) {
    alert ("Sorry, the year must be four-digits in length.");

    } else { return true; }
    }



    function displayCalendar(month, year) {
    month = parseInt(month);
    year = parseInt(year);
    var i = 0;
    var days = getDaysInMonth(month+1,year);
    var firstOfMonth = new Date (year, month, 1);
    var startingPos = firstOfMonth.getDay();
    days += startingPos;

    for (i = 0; i < startingPos; i++) {

    }
    for (i = startingPos; i < days; i++) {

    }
    for (i=days; i<42; i++) {

    }

    }
    function getDaysInMonth(month,year) {
    var days;
    if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) days=31;
    else if (month==4 || month==6 || month==9 || month==11) days=30;
    else if (month==2) {
    if (isLeapYear(year)) { days=29; }
    else { days=28; }
    }
    return (days);
    }
    function isLeapYear (Year) {
    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
    return (true);
    } else { return (false); }
    }


    Проблема следующая форма то есть чанк eFBForm2, он некорретно выводится должен вевести календарь, а он не выводится а выводит просто 3 формы для ввода?
    А если не использовать снипет Eform, то есть просто вывести чанк eFBForm2 то все выводится как надо, почему так???
    как вывети через снипет Eform чанк eFBForm2 с календарем???? то есть подружить снипет Eform с kalen.js?
      • 274
      • 108 Posts
      помогите, неужели никто не сталкивался стаким или я что то не правельно делаю?
        • 274
        • 108 Posts
        никто не хочет помочь((((
          • 8643
          • 271 Posts
          Quote from: abc_kirov at Oct 10, 2010, 12:17 PM

          помогите, неужели никто не сталкивался стаким или я что то не правельно делаю?
          Вопервых когда вставляете код в своём посте, то его лучше заключить в соответствующий тег, там на кнопке значок #
          <FORM NAME="FeedBackForm"  id="FeedBackForm" >
          
          <center>
          <SELECT NAME="fbdataz" onChange="selectDate11()"></SELECT>
          <SELECT NAME="fbdatazg" onChange="selectDate22()"></SELECT>
          <SELECT NAME="fbdatazgod" onChange="selectDate33()"></SELECT>
          </CENTER>
          
          </FORM>
          


          Попробуйте в чанке с шаблоном поменять буквы в названия тегов и их атрибутов на маленькие - <form name="FeedBackForm" и т.д
            • 9085
            • 630 Posts
            Quote from: abc_kirov at Oct 10, 2010, 12:17 PM

            помогите, неужели никто не сталкивался стаким или я что то не правельно делаю?
            1. Открыть страницу в Mozilla Firefox с установленным плагином Webmaster или Bugzilla и посмотреть ошибку javascript.
            2. Сравнить код чанка и "чистого HTML"
            3. беглым просмотром не нашел функции из чанка..
            <SELECT NAME="fbdataz" onChange="selectDate11()"></SELECT>

            ps. осваивать инструменты разработчика..
              Правильно заданный вопрос повышает вероятность получения нужного ответа.
              Что-то не работает? Загляните в лог ошибок!
              Есть проблема? "Локализуйте" её!
              Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
              • 274
              • 108 Posts
              ок, спс я думал что регистр невлияет на работу, ладно буду теперь знать, ещё вопросик
              сейчас проблемка вследующем
              чанк eFBForm2
              <form name="FeedBackForm"  id="FeedBackForm" >
              <center>
              <select name="fbdataz"   eform="День::0::" onChange=""></select>
              <select name="fbdatazg"   eform="мес::0::" onChange="selectDate22()"></select>
              <select name="fbdatazgod"  eform="год::0::" onChange="selectDate33()"></select>
              <input type="submit" name="fbSubmit" id="fbSubmit" value="Отправить">
              </center>
              </form>
              


              в шаблоне в теге ппрописываю <body onLoad="setToday();selectDate1();" >

              в теге head прописыаю <SCRIPT LANGUAGE="JavaScript" src="assets/snippets/kalen.js"></SCRIPT>

              файл kalen.js- спомощью его выводится календарь
              var mes = new Array();
              var god = new Array();
              var array = ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь','июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь' ];
              var flagg = 0;
              <!-- Begin
              
              function selectDate1() {
              
              var now1   = new Date();
              var day   = now1.getDate();
              var month = now1.getMonth();
              var year  = now1.getYear();
              if (year < 2000)    // Y2K Fix, Isaac Powell
              year = year + 1900;
              displayCalendar1(month, year,day,array);
              }
              function displayCalendar1(month, year,day,array) {    
              month5 =parseInt( month) ;
              year5 = parseInt(year);
              month = parseInt(month);
              year = parseInt(year);
              day = parseInt(day);
              var i = 0;
              var j = 0;
              var ij = day;
              
              var days = getDaysInMonth(month+1,year);
              for (i=day; i<=(days); i++)  {
              document.FeedBackForm.fbdataz.options[j] = new Option(ij,j+1);
              ij++;
              j++;
              }
              var i = 0;
              var j = 0;
              var ij = year5;
              for (i=year5; i<=(year5+1); i++)  {
              document.FeedBackForm.fbdatazgod.options[j] = new Option(ij,j+1);
              ij++;
              j++;
              }
              
              ttt7=12-month;
              
              var i = 0;
              for (i=0; i<(ttt7); i++)  {
              ee=array[month5];
              mes[i]= month5;
              god[i]= year5;
              document.FeedBackForm.fbdatazg.options[i] = new Option(ee,i+1);
              if (month5 == 11) {
              month5 = 0;
              year5++;
              } else { month5++; }
              }
              
              }
              
              
              function selectDate22() {
              if (flagg == 0 ) {
              document.FeedBackForm.fbdataz.options.length =0;
              inde=document.FeedBackForm.fbdatazg.selectedIndex;
              month5 =parseInt(mes[inde]);
              year5 = parseInt(god[inde]);
              var days = getDaysInMonth(month5+1,year5);
              var i = 0;
              var j = 0;
              var ij = 1;
              for (i=0; i<=(days-1); i++)  {
              document.FeedBackForm.fbdataz.options[j] = new Option(ij,j+1);
              ij++;
              j++;
              }
              
              if (inde==0)
              {
              document.FeedBackForm.fbdataz.options.length =0;
              var now2   = new Date();
              var day   = now2.getDate();
              var ij = day;
              var i = 0;
              var j = 0;
              
              for (i=day; i<=(days); i++)  {
              document.FeedBackForm.fbdataz.options[j] = new Option(ij,j+1);
              ij++;
              j++;
              }
              }
              }
              
              if (flagg == 1 ) {
              document.FeedBackForm.fbdataz.options.length =0;
              trey=document.FeedBackForm.fbdatazgod.value;
              tremon=document.FeedBackForm.fbdatazg.selectedIndex;
              
              dayst = getDaysInMonth(tremon+1,trey);
              
               i = 0;
               j = 0;
               ij = 1;
              for (i=0; i<=(dayst-1); i++)  {
              document.FeedBackForm.fbdataz.options[j] = new Option(ij,j+1);
              ij++;
              j++;
              }
              }
              }
              
              
              
              
              function selectDate33() {
              
              var now14   = new Date();
              var day51   = now14.getDate();
              var month51 = now14.getMonth();
              var year51  = now14.getYear();
              
              if (year51 < 2000)    // Y2K Fix, Isaac Powell
              year51 = year51 + 1900;
              year51  = parseInt(year51);
              month51  = parseInt(month51);
              year514  = parseInt(year51);
              
              xxxx=document.FeedBackForm.fbdatazgod.value;
              if (xxxx > year51 )
              {
              flagg=1;
              document.FeedBackForm.fbdataz.options.length =0;
              document.FeedBackForm.fbdatazg.options.length =0;
              var days = getDaysInMonth(1,year51);
              var i = 0;
              var j = 0;
              var ij = 1;
              
              
              for (i=0; i<=(days-1); i++)  {
              document.FeedBackForm.fbdataz.options[j] = new Option(ij,j+1);
              ij++;
              j++;}
              
              for (i=0; i<(12); i++)  {
              ee=array[i];
              document.FeedBackForm.fbdatazg.options[i] = new Option(ee,i+1);
              }
              
              }
              
              if (xxxx == year514 )
              {
              flagg=0;
              document.FeedBackForm.fbdataz.options.length =0;
              document.FeedBackForm.fbdatazg.options.length =0;
              selectDate1();
              setToday();
              }
              
              }
              
              
              
              
              
              
              function setToday() {
              var now   = new Date();
              var day   = now.getDate();
              var month = now.getMonth();
              var year  = now.getYear();
              if (year < 2000)    // Y2K Fix, Isaac Powell
              year = year + 1900; // http://onyx.idbsu.edu/~ipowell
              this.focusDay = day;
              
              
              displayCalendar(month, year);
              }
              function isFourDigitYear(year) {
              if (year.length != 4) {
              alert ("Sorry, the year must be four-digits in length.");
              
              } else { return true; }
              }
              
              
              
              function displayCalendar(month, year) {       
              month = parseInt(month);
              year = parseInt(year);
              var i = 0;
              var days = getDaysInMonth(month+1,year);
              var firstOfMonth = new Date (year, month, 1);
              var startingPos = firstOfMonth.getDay();
              days += startingPos;
              
              for (i = 0; i < startingPos; i++) {
              
              }
              for (i = startingPos; i < days; i++) {
              
              }
              for (i=days; i<42; i++)  {
              
              }
              
              }
              function getDaysInMonth(month,year)  {
              var days;
              if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
              else if (month==4 || month==6 || month==9 || month==11) days=30;
              else if (month==2)  {
              if (isLeapYear(year)) { days=29; }
              else { days=28; }
              }
              return (days);
              }
              function isLeapYear (Year) {
              if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
              return (true);
              } else { return (false); }
              }
              


              вызываю
              [!eForm? &formid=`FeedBackForm` &tpl=`eFBForm2`!]

              все выводится как надо тое сть каледарик выводится, но при отправки сообщение пишит
              В вашей форме обнаружены следующие ошибки:
              День » Неверное значение
              мес » Неверное значение
              год » Неверное значение


              я так думаю что отсутвует теги <option ></option> в
              <select name="fbdataz" eform="День::0::" onChange=""></select> Но если смотреть в среде разработчики то <option ></option> присуствуют.

              и если написать н-р <select name="fbdataz" eform="День::0::" ><option value="1">1</option></select>, также исправить все другие select и не выполнять скрипт то все нормально будет то есть сообщение отправляется.

              Вчем косяк, как испрвать, может modx есть стандартный календарик который будет контачить с со сниптом Eform?
                • 274
                • 108 Posts
                Подскажите пожалуйста календарь (день месяц год), который контачит бы со сниптом Eform? а то создал свой а Eform не могут подружиться с js, я так понял что динамически нельзя создавать select, так как Eform его потом не может определить(
                  • 9085
                  • 630 Posts
                  Quote from: abc_kirov at Oct 12, 2010, 09:19 AM

                  Подскажите пожалуйста календарь (день месяц год), который контачит бы со сниптом Eform? а то создал свой а Eform не могут подружиться с js, я так понял что динамически нельзя создавать select, так как Eform его потом не может определить(
                  А если сделать SELECT с одним <option>Выберите...</option>?.. который при обработке JS убирать..например, так:
                  document.FeedBackForm.fbdataz.length=0
                    Правильно заданный вопрос повышает вероятность получения нужного ответа.
                    Что-то не работает? Загляните в лог ошибок!
                    Есть проблема? "Локализуйте" её!
                    Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx