Помощь с java script

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Помощь с java script

Сообщение Lenny » 22.09.2009 (Вт) 22:23

Куда то пропала тема, если она продублированна, сотрите пожалуйста дубликат.!

Не судите строго, я javascript не знаю. Мне надо было перевести один vbscript на javascript. Я нашел какой то конвертер на web, но он не точно переводит. Когда запустил, мне показывает что не хватает какой то скобки, но какой, никак не могу найти, может кто подскажет если знает. Ошибку он показывает в конце скрипта </script> Но она где то в самой функции должна быть. Заранее спасибо.
Код: Выделить всё
function ONFOCUSOUTY(R){
        var th;
        var sDate;
        var th1;
        var sYr;
      if (R == "1") {
           //th=form1.txtMon1;
           th = document.getElementById('txtYear1');
       } else if (R == "2") {
           //th = form1.txtMon2;
            th = document.getElementById('txtYear2');
       } else if (R == "3") {
           //th = form1.txtMatFrDateMon;
            th = document.getElementById('txtMatFrDateYr');
       } else if (R == "4") {
           //th = form1.txtDatToDateMon;
            th = document.getElementById('txtDatToDateYr');
        }
        sYr=th.value;
        if(th.value==""){
            return;
        }
        if(isNaN(th.value)){
            th.value="";
            th.focus();
            return;
        }
        if(th.value.length==4 && !isNaN(th.value)){
             if (R == "1") {
                th1 = document.getElementById('txtHiPr1');
               if(!th1.disable){
                 th1.focus();
             } else {
                th1 = document.getElementById('txtLoPr1');
                th1.focus();
             }
         }else if(R=="2"){
             th1 = document.getElementById('txtHiPr2');
             if(!th1.disabled){
                 th1.focus();
             } else {
                th1 = document.getElementById('txtLoPr2');
                th1.focus();
             }
         }else if(R=="3"){
                th1 = document.getElementById('txtDatToDateMon');
                th1.focus();
         }else if(R=="4"){
                th1 = document.getElementById('txtDivCoupRate');
                th1.focus();
         }
         if(R=="1"){
                var d;
                var m;
                var y;
                var DP1;
                var lDP1;
                var PDt1;
                var DP2;
                var lDP2;
                var PDt2;
                var HMFDt;
                var HDTDt;
                m = document.getElementById('txtMon1');
                d = document.getElementById('txtDay1');
                y = document.getElementById('txtYear1');
                sDate=m.value + "/" + d.value + "/" + y.value;
                DP1 = document.getElementById('HDP1');
                //DP1.value=datediff("d", ValDate,sDate);
                if(DP1.value=="0"){DP1.value="1";
                lDP1=document.getElementById('lblDayPast1');
                lDP1.innertext=DP1.value;
                PDt1 = document.getElementById('HPRDATE1');
                PDt1.value=sDate;
            }else if(R=="2"){
                m = document.getElementById('txtMon2');
                d = document.getElementById('txtDay2');
                y = document.getElementById('txtYear2');
                sDate=m.value + "/" + d.value + "/" + y.value;
                DP2 = document.getElementById('HDP2');
               // DP2=datediff("d", ValDate,sDate);
                if(DP2.value=="0"){DP2.value="1";
                lDP2=document.getElementById('lblDayPast2');
                lDP2.innertext=DP2.value;
                PDt2 = document.getElementById('HPRDATE2');
                PDt2.value=sDate;
            }else if(R=="3"){
                m = document.getElementById('txtMatFrDateMon');
                d = document.getElementById('txtMatFrDateDay');
                y = document.getElementById('txtMatFrDateYr');
                sDate=m.value + "/" + d.value + "/" + y.value;
                HMFDt= document.getElementById('HMFDATE');
                HMFDt.value=sDate;
         }else if(R=="4"){
                m = document.getElementById('txtDatToDateMon');
                d = document.getElementById('txtDatToDateday');
                y = document.getElementById('txtDatToDateYr');
                sDate=m.value + "/" + d.value + "/" + y.value;
                HDTDt= document.getElementById('HDTDATE');
                HDTDt.value=sDate;
            }
        }
    }
Последний раз редактировалось Lenny 05.10.2009 (Пн) 17:31, всего редактировалось 1 раз.

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Помощь с java

Сообщение arvitaly » 22.09.2009 (Вт) 22:43

Ошибку в студию

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Помощь с java script

Сообщение Lenny » 22.09.2009 (Вт) 22:58

Expected '}'
Ошибку он указывает на конец скрипта именно на эту линию где </script>
Последний раз редактировалось Lenny 05.10.2009 (Пн) 17:32, всего редактировалось 1 раз.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Помощь с java

Сообщение iGrok » 22.09.2009 (Вт) 23:14

Целых двух скобок не хватало.

Держи поправленный код:
Код: Выделить всё
function ONFOCUSOUTY(R){
   var th;
   var sDate;
   var th1;
   var sYr;
   if (R == "1") {
      //th=form1.txtMon1;
      th = document.getElementById('txtYear1');
   } else if (R == "2") {
      //th = form1.txtMon2;
      th = document.getElementById('txtYear2');
   } else if (R == "3") {
      //th = form1.txtMatFrDateMon;
      th = document.getElementById('txtMatFrDateYr');
   } else if (R == "4") {
      //th = form1.txtDatToDateMon;
      th = document.getElementById('txtDatToDateYr');
   }
   sYr=th.value;
   if(th.value==""){
      return;
   }
   if(isNaN(th.value)){
      th.value="";
      th.focus();
      return;
   }
   if(th.value.length==4 && !isNaN(th.value)){
      if (R == "1") {
         th1 = document.getElementById('txtHiPr1');
         if(!th1.disable){
            th1.focus();
         } else {
            th1 = document.getElementById('txtLoPr1');
            th1.focus();
         }
      }else if(R=="2"){
         th1 = document.getElementById('txtHiPr2');
         if(!th1.disabled){
            th1.focus();
         } else {
            th1 = document.getElementById('txtLoPr2');
            th1.focus();
         }
      }else if(R=="3"){
         th1 = document.getElementById('txtDatToDateMon');
         th1.focus();
      }else if(R=="4"){
         th1 = document.getElementById('txtDivCoupRate');
         th1.focus();
      }
   
      if(R=="1"){
         var d;
         var m;
         var y;
         var DP1;
         var lDP1;
         var PDt1;
         var DP2;
         var lDP2;
         var PDt2;
         var HMFDt;
         var HDTDt;
         m = document.getElementById('txtMon1');
         d = document.getElementById('txtDay1');
         y = document.getElementById('txtYear1');
         sDate=m.value + "/" + d.value + "/" + y.value;
         DP1 = document.getElementById('HDP1');
         //DP1.value=datediff("d", ValDate,sDate);
         if(DP1.value=="0"){
            DP1.value="1";
            lDP1=document.getElementById('lblDayPast1');
            lDP1.innertext=DP1.value;
            PDt1 = document.getElementById('HPRDATE1');
            PDt1.value=sDate;
         } //НЕ ХВАТАЛО
      }else if(R=="2"){
         m = document.getElementById('txtMon2');
         d = document.getElementById('txtDay2');
         y = document.getElementById('txtYear2');
         sDate=m.value + "/" + d.value + "/" + y.value;
         DP2 = document.getElementById('HDP2');
         // DP2=datediff("d", ValDate,sDate);
         if(DP2.value=="0"){
            DP2.value="1";
            lDP2=document.getElementById('lblDayPast2');
            lDP2.innertext=DP2.value;
            PDt2 = document.getElementById('HPRDATE2');
            PDt2.value=sDate;
         } //НЕ ХВАТАЛО
      }else if(R=="3"){
         m = document.getElementById('txtMatFrDateMon');
         d = document.getElementById('txtMatFrDateDay');
         y = document.getElementById('txtMatFrDateYr');
         sDate=m.value + "/" + d.value + "/" + y.value;
         HMFDt= document.getElementById('HMFDATE');
         HMFDt.value=sDate;
      }else if(R=="4"){
         m = document.getElementById('txtDatToDateMon');
         d = document.getElementById('txtDatToDateday');
         y = document.getElementById('txtDatToDateYr');
         sDate=m.value + "/" + d.value + "/" + y.value;
         HDTDt= document.getElementById('HDTDATE');
         HDTDt.value=sDate;
      }
   }
}
label:
cli
jmp label

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Помощь с java

Сообщение Lenny » 22.09.2009 (Вт) 23:26

Огромное спасибо!!. Работает. А+

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Помощь с java script

Сообщение Lenny » 05.10.2009 (Пн) 17:20

Доброе утро.
Теперь такая проблема возникла с JS. Index контролов:
Код: Выделить всё
    <table cellspacing="1" cellpadding="2" id="details" border="1" width="80%">
            <thead style="background:#D4D0C8;color:#055A78">
             <tr>
                    <th align="center">
                        Item</th>
                    <th align="center">
                        Cusip/Ticker</th>
                    <th align="center">
                        Shares/Par Value</th>
                    <th align="center">
                        Action</th>
                </tr>
          </thead>
          <tbody id="tbody">
          <tr style="background: #E5F2F8">
          <td align="center"><input id="txtNum" type="text" runat="server" disabled="disabled" value="1" style="text-align:center; width:100px;" /></td>
          <td align="center"><input id="txtCusip" type="text" runat="server" onkeyup="return CheckDigit('txtCusip');" /></td>
          <td align="center"><input id="txtShares" type="text" runat="server" /></td>
          </tr>
          </tbody>
        </table>


Из процедуры я вызываю
Код: Выделить всё
.... AddNewRow();


JS script:
Код: Выделить всё
var count = 1;
function AddNewRow() {
    count++;
    //get the  1st body element by tag name "Body"[0]
    var mybody = document.getElementsByTagName("body")[0];
    //get the 1st table element by tag name "table"[0]
    var mytable = mybody.getElementsByTagName("table")[0];
    //get the 1st tbody element by tag name "tbody"[0]
    var tabBody = mytable.getElementsByTagName("tbody")[0];
    if (count % 2 == 0) {
        var row = document.createElement("<TR style=background:#FFFFFF;>");
    }else {
        var row = document.createElement("<TR style=background:#E5F2F8;>");
    }
    var cell1 = document.createElement("<TD>");
    var cell2 = document.createElement("<TD>");
    var cell3 = document.createElement("<TD>");
    var cell4 = document.createElement("<TD>");
   
    var textnode1 = document.createElement("<input id=txtNum type=text runat=server disabled=disabled value=1 style=text-align:center; width:100px; />");
    var textnode2 = document.createElement("<input id=txtCusip type=text runat=server onkeyup=return CheckDigit(txtCusip); />");
    var textnode3 = document.createElement("<input id=txtShares type=text runat=server />");
    var textnode4 = document.createElement("<div>2</div>");

    textnode1.setAttribute("value", count);
    textnode1.setAttribute("width", "20px");
   
    cell1.appendChild(textnode1);
    cell1.setAttribute("align", "center");
   
    cell2.appendChild(textnode2);
    cell2.setAttribute("align", "center");

    cell3.appendChild(textnode3);
    cell3.setAttribute("align", "center");
   
    cell4.appendChild(textnode4);
    cell4.setAttribute("align", "center");

    row.appendChild(cell1);
    row.appendChild(cell2);
    row.appendChild(cell3);
    row.appendChild(cell4);
    tabBody.appendChild(row);
}

Вопрос:
Как в таком скрипте указать индексацию контролов, например txtCusip, как их динамически загрузить, и как к ним обратиться. И ещё, txtShаres, в form load, я добавил атрибют onfocusout, txtShares.Attributes.Add("onfocusout", "CurrencyFormatted(""" & txtShares.ID & """)") но только для основного контрола, как мне динамически указывать этот артибюте для остальних?txtShares.setAttribute("onfocusout", "CurrencyFormatted(""" & txtShares.ID & """)"); ??

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Помощь с java script

Сообщение Lenny » 06.10.2009 (Вт) 0:41

Спасибо, с этой задачей помогли.)

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Помощь с java script

Сообщение Lenny » 09.10.2009 (Пт) 22:20

Подскажите, как обратиться к childNodes. Мне надо перенумеровать первую колонку Item, после того как я удалил одну из row? Спасибо.
Код: Выделить всё
function renameRows(startRow) {
//    var parent = document.getElementById('tbody');
//    var a = parent.childNodes.item(0).childNodes.item(0).childNodes.item(0).Name.toString();

    for (var i = 0; i <= count; i++) {
    try{
        if (document.getElementById('tN' + i)) {
        var tN = document.getElementById('tN' + i);
        //tN.id = 'tN' + (i - 1);
        tN.value = i;
        }
   
    }catch(e){
        alert(e);
    }finally{
   
    }
    }
}
Вложения
Grid.GIF
(12.07 Кб) Скачиваний: 368

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Помощь с java script

Сообщение iGrok » 09.10.2009 (Пт) 23:24

Если только перенумеровать, можно попробовать что-то подобное:
Код: Выделить всё
<script language="javascript">
function test() {
  var p = document.getElementsByName("fc");
  for(i=0; i<p.length; i++){
    p[i].innerHTML = i+1;
  }
}
</script>

<button onclick="test();">TEST</button>
<table border="1" width="500px">
  <thead><tr><th>1</th><th>2</th><th>3</th></tr></thead>
  <tbody>
    <tr><td name="fc">1</td><td>21</td><td>31</td></tr>
    <tr><td name="fc">1</td><td>21</td><td>31</td></tr>
    <tr><td name="fc">1</td><td>21</td><td>31</td></tr>
  </tbody>
</table>


Но за правильность или адекватность решения я не ручаюсь.
label:
cli
jmp label


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList