Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > данные из полей???


Автор: hostsid 7.10.2008, 01:30
Есть форма с полями...подскажите пожалуйста...как вытащить ТЕ данные (для дальнейшего их использования в расчётах), введенные юзером, чей ЧЕКБОКС включен!
Код

<form>
  <table width="350" borpr="0" bgcolor="#666666" style="float: left; margin-right: 21px;">
    <tr>
      <td align="center" bgcolor="#333333" colspan="3"><b>Кухня</b></td>
    </tr>
    <tr>
      <td class="point" width="160"><input type="checkbox" name="p1" />Холодильник</td>
      <td class="point" width="80"><input type="text" size="5" name="m_p1" />&nbsp;Вт</td>
      <td class="point" width="120"><input type="text" size="5" name="h_p1" />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p2" />СВЧ</td>
      <td class="point"><input type="text" size="5"  name="m_p2" />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p2" />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p3" />Электрочайник</td>
      <td class="point"><input type="text" size="5"  name="m_p3" />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p3" />&nbsp;Час(ов)</td>
    </tr>
</table>
</form>

Автор: bars80080 7.10.2008, 09:08
я б тебе посоветовал ввести ещё id в поля, хотя бы такие же, как имена

допустим fr - указатель на форму
Код

var fr = document.getelementById('id_form');
var el = fr.getElementsByTagName('input');
var ell = el.length;
var nm;
for(var i = 0; i < ell; i++) {
    if(el[i].type != 'checkbox') continue;
    if(!el[i].checked) continue;
    nm = el[i].name;
    alert('параметр 1: ' + document.getElementById('m_' + nm).value);
    alert('параметр 2: ' + document.getElementById('p_' + nm).value);    
}

Автор: ksnk 7.10.2008, 10:48
А куда вытаскивать-то? 
Вообще-то, imho, разумнее юзать Дом-структуру документа. 
Код

var inp=document.getElementsByTagName('input'),cc=inp.length;
while(cc--){
  if(inp[cc].type && inp[cc].type=='checkbox' && inp[cc].checked){
     var ii=inp[cc].parentNode.parentNode.getElementsByTagName('input');
     alert([inp[cc].name ,ii[1].value,ii[2].value]);
 }
}

Автор: hostsid 7.10.2008, 11:05
спасибо огромное....
возникла другая проблема..как сделать так, что б он значение этих полей преобразовывал в числа и суммировал (например) ?

Автор: bars80080 7.10.2008, 13:30
преобразовать в число можно и parseInt(), а можно и просто умножить на единицу *1
суммировать - знак "+"

Автор: hostsid 7.10.2008, 21:42
НЕ РАБОТАЕТ ((( ...хелп...
Код

function result() {
    var fr = document.getelementById('form');
    var el = fr.getElementsByTagName('input');
    var ell = el.length;
    var nm;
    for(var i = 0; i < ell; i++) {
        if(el[i].type != 'checkbox') continue;
        if(!el[i].checked) continue;
        nm = el[i].name;
        alert('параметр 1: ' + document.getElementById('m_' + nm).value);
        alert('параметр 2: ' + document.getElementById('h_' + nm).value);    
        }
    }

Код

<form name="form" id="form">
  <table width="350" borpr="0" bgcolor="#666666" style="float: left; margin-right: 21px;">
    <tr>
      <td align="center" bgcolor="#333333" colspan="3"><b>Кухня</b></td>
    </tr>
    <tr>
      <td class="point" width="160"><input type="checkbox" name="p1" id="p1" onclick="show_p(this);"/>Холодильник</td>
      <td class="point" width="80"><input type="text" size="5" name="m_p1" id="m_p1" disabled />&nbsp;Вт</td>
      <td class="point" width="120"><input type="text" size="5" name="h_p1" id="h_p1" disabled />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p2" id="p2" onclick="show_p(this);"/>СВЧ</td>
      <td class="point"><input type="text" size="5"  name="m_p2" id="m_p2" disabled />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p2" id="h_p2" disabled />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p3" id="p3" onclick="show_p(this);"/>Электрочайник</td>
      <td class="point"><input type="text" size="5"  name="m_p3" id="m_p3" disabled />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p3" id="h_p3" disabled />&nbsp;Час(ов)</td>
    </tr>
</table>

<button type="button" onclick="result();" style="color: #339900;"><b>рассчет</b></button>

</form>


Автор: bars80080 7.10.2008, 22:51
и где что суммируется? что не работает-то?

Автор: hostsid 7.10.2008, 23:00
дык даже алерт не работает. не показывает ничего...

Автор: bars80080 7.10.2008, 23:11
ёксель-моксель, я ошибся в одной букве, а ты и поверил. неужели у тебя показ ошибок отключён?
Код
<html><body>
<script>
function result() {
    var fr = document.getElementById('form'); 
    var el = fr.getElementsByTagName('input');
    var ell = el.length;
    var nm;
    for(var i = 0; i < ell; i++) { 
        if(el[i].type != 'checkbox') continue;
        if(!el[i].checked) continue;
        nm = el[i].name;
        alert('параметр 1: ' + document.getElementById('m_' + nm).value);
        alert('параметр 2: ' + document.getElementById('h_' + nm).value);    
        }
    }
function show_p(x) {
return;
}
</script>
<form name="form" id="form">
  <table width="350" borpr="0" bgcolor="#666666" style="float: left; margin-right: 21px;">
    <tr>
      <td align="center" bgcolor="#333333" colspan="3"><b>Кухня</b></td>
    </tr>
    <tr>
      <td class="point" width="160"><input type="checkbox" name="p1" id="p1" onclick="show_p(this);"/>Холодильник</td>
      <td class="point" width="80"><input type="text" size="5" name="m_p1" id="m_p1" disabled />&nbsp;Вт</td>
      <td class="point" width="120"><input type="text" size="5" name="h_p1" id="h_p1" disabled />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p2" id="p2" onclick="show_p(this);"/>СВЧ</td>
      <td class="point"><input type="text" size="5"  name="m_p2" id="m_p2" disabled />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p2" id="h_p2" disabled />&nbsp;Час(ов)</td>
    </tr>
    <tr>
      <td class="point"><input type="checkbox" name="p3" id="p3" onclick="show_p(this);"/>Электрочайник</td>
      <td class="point"><input type="text" size="5"  name="m_p3" id="m_p3" disabled />&nbsp;Вт</td>
      <td class="point"><input type="text" size="5" name="h_p3" id="h_p3" disabled />&nbsp;Час(ов)</td>
    </tr>
</table>

<button type="button" onclick="result();" style="color: #339900;"><b>рассчет</b></button>

</form>
</body></html>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)