2014-07-15 2 views
0

다음과 같은 시간 "Amount 1"을 2 (am1 * 2) 씩 변경하고 "Amount 2"의 값을 결과 (JavaScript에 의해 실행 됨)로 변경하십시오.양식 필드 (... 이름 = "array1 []")를 Javascript 함수에 전달하고 다른 양식 필드의 값을 변경하십시오 (... name = "array2 []")

그런 다음 양식에 필드 (금액 1 & 2)를 추가 할 수있는 동일한 양식이 있습니다.

다른 "ADDED"필드에서 동일한 기능 (시간당 "Amount 1"을 2로 변경하고 "Amount 2"의 값을 변경)을 원합니다.

<html> 
<head> 
<script> 
var ct = 1; 
function new_combi(){ 
      ct++; 
      var div1 = document.createElement('div'); 
      div1.id = ct; 
      // link to delete extended form elements 
      var delLink = '<div style="text-align:right;margin-right:65px"><a href="javascript:delIt('+ ct +')">Del</a></div>'; 
      div1.innerHTML = document.getElementById('amount').innerHTML + delLink; 
      document.getElementById('combine').appendChild(div1); 
} 
// function to delete the newly added set of elements 
function delIt(eleId){ 
      d = document; 
      var ele = d.getElementById(eleId); 
      var parentEle = d.getElementById('combine'); 
      parentEle.removeChild(ele); 
} 

function calculate(){ 
      am1 = document.form1["am1[]"].value; 
      total = am1*2; 
      document.form1["am2[]"].value = total; 
} 
</script> 
</head> 
<body> 
<form id="form1" name="form1" method="post" action=""> 
<div id="combine"> 
<div> 
    <table> 
    <tr> 
     <td width="25%" valign="top">Amount 1</td> 
     <td valign="top"><input type="text" name="am1[]" onchange="calculate()"/></td> 
    </tr> 
    <tr> 
     <td valign="top">Amount 2</td> 
     <td valign="top"><input type="text" name="am2[]" /></td> 
    </tr> 
    </table> 
</div> 
</div> 
<p id="addnew"> 
      <a href="javascript:new_combi()">Add Combination</a> 
</p> 
</form> 
<!-- Template to add--> 
<div id="amount" style="display:none"> 
<div> 
    <table> 
    <tr> 
     <td width="25%" valign="top">Amount 1</td> 
     <td valign="top"><input type="text" name="am1[]" onchange="calculate()"/></td> 
    </tr> 
    <tr> 
     <td valign="top">Amount 2</td> 
     <td valign="top"><input type="text" name="am2[]" /></td> 
    </tr> 
    </table> 
</div> 
</div> 
</body> 
</html> 

답변

0

나는 당신을 위해 뭔가를 시도했다. 희망이 작동합니다.

방금 ​​id=1divdiv#combine에 속성을 지정했습니다.

<div id="1"> 

계산 기능이 변경되었습니다.

function calculate(){ 
    for (var i = 1; i <= ct; i++) { 
    var currentDiv = document.getElementById(i); 
    var am1 = currentDiv.getElementsByTagName('input')[0].value; 
    var total = am1 * 2; 
    currentDiv.getElementsByTagName('input')[1].value = total; 
    }; 
} 

구현 논리를 변경했기 때문에 문제가 발생하면 알려주세요.

+0

훌륭하게 작동합니다. 고마워요! : D – Bernedette

+0

change :) 입력 [1]이 변경되고 (수동 계산 후) 다른 조합이 추가되면 "변경된 값"이 계산으로 되돌아갑니다 (변경된 데이터가 재설정 됨). 변경된 값을 유지할 수있는 방법이 있습니까? – Bernedette

관련 문제