2010-12-03 5 views
0

나는 이것을 보는데 훨씬 더 간단한 방법이 있다는 것을 깨달았다.간단한 방법으로 자바 스크립트로 모든 필드 추가하기

양식이나 다른 존경할만한 신체에 모든 입력란을 어떻게 추가합니까? 동적으로로드되는 정보가 들어있는 일련의 텍스트 필드가 있지만 그 이상에 대해 걱정할 필요는 없습니다.

모든 필드는 고유 한 ID를 가지지 만이 경우에는 같은 시작 구조 'product_total_price_PRI_....' (...은 고유 번호 임)이 있습니다.

그래서 자바 스크립트에 대한 이해는 배열과 객체를 만드는 것보다 리버스 엔지니어링 측면에서 여전히 그렇습니다. 그래서 어떻게 모든 필드에 onClick 이벤트를 추가할까요? onclick = "total();"과 같은 것입니다.

많은 감사, 다음과 같은

답변

0

뭔가 :

이 같은
0
function summaFormae(form) { 
    var sum = 0; 
    for (var i = 0; i < form.elements.length; i++) 
    sum += parseFloat(form.elements[i].value); 
    return sum; 
} 
1

뭔가 작동 할 수 있습니다 ... 의해

뜻 확실하지 "추가"당신이 만약 ' 모든 숫자와 결과가 추가 될 것으로 기대하거나 모든 결과를 잡고 배열에 추가하면됩니다. 그러나 숫자 데이터를 쉽게 추가 할 수 있도록 수정해야합니다.

HTML (단지 입력의 합계를 얻기 위해 업데이트)

<form> 
    <input id="product_total_price_PRI_asdfsdf" /><br /><br /> 
    <input id="product_total_price_PRI_sdfg" /><br /><br /> 
    <input id="product_total_price_PRI_fgh" /><br /><br /> 
    <input id="product_total_price_PRI_4356" /><br /><br /> 
    <input id="product_total_price_PRI_dfghfh" /><br /><br /> 
    <input type="button" value="submit" onClick="getFields()" /> 
</form> 

자바 스크립트 예제를 작업 Example of update

function getFields() { 
    var inputs = document.getElementsByTagName('input'), 
     result = 0; 
    for(var i = 0; i < inputs.length; i++) { 
     if(inputs[i].id.indexOf('product_total_price_PRI_') == 0) { 
      var num = parseFloat(inputs[i].value); 
      //if it's a valid number add it 
      if(!isNaN(num)) result += num; 
     } 
    } 
    alert(result); 
} 

JSFiddle

+0

아주 좋은. 이것의 목적은 합계를 위해 음을 추가하는 것입니다. 그래서 여기서 어딘가에 ParseFLoat이 필요하다고 가정합니다. 어디서 나는 그것을 넣을까요. 합계는 결과 라인을 결과 + + = inputs [i] .value에서 제거했을뿐입니다. –

+0

여기는 숫자가 http : //www.jsfiddle 인 경우 텍스트 상자의 값 합계를 추가하는 업데이트입니다. .net/subhaze/szUey/30/ – subhaze

+0

@Robin : 내 답변이 필요에 맞게 업데이트되었습니다. – subhaze

관련 문제