Добавление только определенных входов в div - PullRequest
1 голос
/ 28 апреля 2011

В настоящее время у меня есть функция, которая добавляет все входные данные в div (inputsite), а затем вычитает эту сумму из другого ввода (siteinput). Это сработало отлично, но я добавил больше входных данных в div, который будет содержать текст; это вызовет предупреждение «не читаемый номер»:

function site_change() {{
         var sites= document.getElementById('sitesinput').value;    
         var sum= 0;
         var inputs= document.getElementById('inputsite').getElementsByTagName('input');
         for (var i= inputs.length; i-->0;) {
             var v= inputs[i].value.split(',').join('.').split(' ').join('');
             if (isNaN(+v))
                 alert(inputs[i].value+' is not a readable number');
             else
                 sum+= +v;
         }
         var phones= document.getElementById('phonesinput').value;
         document.getElementById('siteresult').innerHTML = phones-sum;
    };

}

Пример ввода, который необходимо включить:

<input name="site1" type="text" size="3" value="0" />

И это нужно исключить:

<input name="site1PC" type="text" size="7" maxlength="7"/>

Как настроить функцию так, чтобы она выбирала только те, которые названы site1, site2, site3 и т. Д., А не site1PC, site2PC, site3PC и т. Д.?

Спасибо, Бен.

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Добавить if (inputs[i].getAttribute('name').match(/^site\d+$/))

function site_change() {
         var sites= document.getElementById('sitesinput').value;    
         var sum= 0;
         var inputs= document.getElementById('inputsite').getElementsByTagName('input');
         for (var i= inputs.length; i-->0;) {
            if (inputs[i].getAttribute('name').match(/^site\d+$/))
            {
             var v= inputs[i].value.split(',').join('.').split(' ').join('');
             if (isNaN(+v))
                 alert(inputs[i].value+' is not a readable number');
             else
                 sum+= +v;
            }
         }
         var phones= document.getElementById('phonesinput').value;
         document.getElementById('siteresult').innerHTML = phones-sum;
    };

}
1 голос
/ 28 апреля 2011

Ты имеешь в виду что-то подобное?

Надеюсь, это поможет.

function site_change() {{
         var sites= document.getElementById('sitesinput').value;    
         var sum= 0;
         var inputs= document.getElementById('inputsite').getElementsByTagName('input');
         for (var i= inputs.length; i-->0;) {
             if(input.hasClass('ignore')){return;} // looking for this(give your input class='ignore' to be excluded.

             var v= inputs[i].value.split(',').join('.').split(' ').join('');
             if (isNaN(+v))
                 alert(inputs[i].value+' is not a readable number');
             else
                 sum+= +v;
         }
         var phones= document.getElementById('phonesinput').value;
         document.getElementById('siteresult').innerHTML = phones-sum;
    };

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...