2012-07-17 2 views
-2

이 자바 스크립트 또는 html에는 체크 박스에 체크 표시를 할 수 있지만 반 초 동안은 허용되지 않습니다. (내가 거기 머물 검사를 필요로한다!) 나는 또한 addItems라는 모든 체크 박스이 자바 스크립트에 어떤 문제가 있습니까? 장바구니

function uncheck() { 

var leftSide = document.getElementById('table_container_left'); 
var inputs = leftSide.getElementsByTagName('input'); 
for (x=0; x<=inputs.length-1; x++) { 
    if(inputs[x].type == 'text') { 
     inputs[x].value = 0; 
    } else { 
     inputs[x].checked = false; 
    } 
} 
} 

추가 항목을 점검 기능을 모든 체크 박스

function check() { 

var leftSide = document.getElementById('table_container_left'); 
var inputs = leftSide.getElementsByTagName('input'); 
for (x=0; x<=inputs.length-1; x++) { 
    if(inputs[x].type == 'text') { 
     inputs[x].value = 1; 
    } else { 
     inputs[x].checked = true; 
    } 
} 
} 

의 선택을 취소를 작동

var computer = new Array(); 

computer[0] = "10001, Nvidia Geforce GTX 690, 1200"; 
computer[1] = "10002, Raedon HD 7950, 450"; 
computer[2] = "20001, Ivy Bridge i7 3770, 400"; 
computer[3] = "20002, Ivy Bridge i7 3770k, 420"; 
computer[4] = "20003, Sandy Bridge i7 2700k, 340"; 
computer[5] = "20004, Bulldozer FX-8150, 270"; 
computer[6] = "30001, Antec eleven-hundred, 120"; 
computer[7] = "30002, Coolermaster HAF-X, 170"; 
computer[8] = "30003, Antec three-hundred, 50"; 
computer[9] = "30004, Corsair 550D, 160"; 
computer[10] = "40001, INTEL-ASrock fatal1ty Z77 Professional Motherboard, 250"; 
computer[11] = "40002, INTEL-ASrock Z77 extreme9 Motherboard, 350"; 
computer[12] = "40003, AMD-ASrock fatal1ty 990FX Professional Motherboard, 240"; 
computer[13] = "40004, AMD-ASUS Sabertooth 990FX Motherboard, 260"; 

확인을 작동하는 기능이 필요 장바구니에 담기

function addItems() { 
var leftSide = document.getElementById('table_container_left'); 
var rightSide = document.getElementById('table_container_right'); 
var inputs = leftSide.getElementByTagName('input'); 
var totalPrice = 0; 
var basketTable = "<h3>My Basket:</h3><table><thead><tr><th>Item</th><th>Quantity</th><th>price</th><th>Sub-total</th></tr></thead><tbody>"; 
for (x=0; x<=inputs.length-1; x++) { 
    if(inputs[x].type == 'checkbox' && inputs[x].checked == true) { 
     var quantity = ParseFloat(inputs[x+1).value); 
     var itemName = computer[x/2].split(",")[1]; 
     var itemPrice = parseFloat(computer[x/2].split(",")[2]) 
     var itemTotal = parseFloat(quantity*itemPrice); 
     totalPrice += itemTotal; 
     basketTable += "<tr><td>"+itemName+"</td><td>"+quantity+"</td><td>$"+itemPrice+"</td><td>$"+itemTotal+"</td></tr>"; 
    } 
} 
basketTable +=" <tr><td> colspan='3'><b>Total:</b></td><td><b>$"+totalPrice+"</b></td></tr></tbody><table>"; 
rightsSide.innerHTML = basketTable; 
} 

업데이트 수량 1 항목은 다음

function updateQty(id) { 

var targetRow = document.getElementById(id); 
var qtyBox = targetRow.getElementsByTagName('input')[1]; 
if (qtyBox.value == 0) { 
    qtyBox.value = 1; 
} else { 
    qtyBox.value = 0; 
} 
} 

을 확인 당신은 전역 변수를 소개합니다 i = 0보다는 var i = 0를 사용하는 요청

<form name="myForm" action="index.html" method="post"> 

     <div id="table_container_left"> 

        <button onclick="check();">Select All</button> 

        <button onclick="uncheck();">Unselect All</button> 

        <button onclick="addItems();">Add Items</button> 

      <table> 

       <thead> 

         <th><u>Item Code</u></th> 

         <th><u>Item</u></th> 

         <th><u>Qty</u></th> 

         <th><u>Price</u></th> 

       </thead> 

       <tbody> 



<script type="text/javascript"> 

for(x=0; x<=computer.length-1; x++) { 

document.write("<tr id='"+x+"'><td><label><input type='checkbox' name='item' value='"+x+"'  onclick='updateQty('"+x+"');'/> "+computer[x].split(",")[0]+"</label></td><td>"+computer[x].split (",")[1]+"</td><td> <input name='qty' id='qty' type='textbox' value='0' onchange='qtychange ('"+x+"');'/></td><td>$"+computer[x].split(",")[2]+"</td></tr>"); 

} 

</script> 







       </tbody> 

      </table> 

     </div> 



     <div id="table_container_right"> 

      <table id="shoppingBasket"> 













        <input name='selectAll' type='button' value='Select All' onclick="itemSelected();"/> 

        <input name='clearAll' type='button' value='Clear All' onclick=""/> 

        <input name='removeItem(s)' type='button' value='Remove Item(s)' /> 

        <input name='sortItemCode' type='button' value='Sort by Item Code' disabled='disabled' /> 

        <input name='sortPrice' type='button' value='Sort by Price' disabled='disabled' /> 

       </tbody> 

      </table> 

     </div> 



</div> 



</form> 
+1

는 어떤 일이 발생한다 : 여기 어디 변수 중 하나가 될해야하는지 모르겠지만

내 최선입니까? 변수 컴퓨터와 selectd는 어디에서 왔습니까? 주어진 정보로는 대답이 불가능합니다! –

답변

0

과 HTML의 경우. 비슷한 코드를 다른 곳에서 작성하는 경우 문제가 될 수 있습니다.

귀하의 if - 진술은 전혀 진술이 아닙니다. 그들은 의사 코드처럼 보입니다. 또한 == 대신 =과 비교할 수 있습니다. 구문을 수정하더라도 조건이 아닌 할당이 발생합니다.

코드를 들여 쓰지 않아 새로운 오류가 발생하기 쉽습니다.

다음 내용은 내가 즉시 알아 차리는 일반적인 문제입니다. 물론 의 코드는 일 수 있습니다. fields는 배열, computerselectedfields의 크기 등

당신이 어떤 특정 문제가있는 경우, 그것을 설명하고 우리가 그것을 해결할 수 있습니다하십시오 일치하지 않을 수 있습니다하지 않을 수 있습니다.

+0

슬프게도이 문제가 해결되지 않았습니다. – Hygeia

+0

그러면 문제를 설명해야합니다. –

+0

@DavidHedlund 반복에 대해 잘못 생각한 경우 조건이 <=이므로 모든 필드를 반복합니다. –

0

귀하의 JS 구문이가 당신의 문이없는 경우 괄호

function addItems(field) { 
    for (i = 0; i <= field.length-1; i++) 
    { 
     if (field[i].checked == true) 
     { 
      if (computer[i]!=null) { 
       selected[i] = computer[i]; 
      } 
     } 
    } 
} 
+0

정말 고마워요! :) – Hygeia

0

절반과 같아야 것입니다, 해제 방법, 즉 몇 가지 기본적인 부정입니다. 실제로 일이 뭐죠 수행

function addItems(field) { 
    var i; 
    for (i = 0; i < field.length; i++) { 
     if (field[i].checked === true) { 
      if (computer[i] !== null) { 
       selected[i] = computer[i]; 
      } 
     } 
    } 
} 
관련 문제