2년전에 커피대접하고 제공받은 연산 스크립터를 한군데 수정을 하려고 하는데 잘 안되네요. 만들어 주신 분께선 연락이 안되네요.도움 부탁드립니다.

<script type="text/javascript">
    var $j = jQuery.noConflict();   
    var fontColor ="rgb(224, 72, 165)";
 $j(document).ready(function(){
 $j('input:radio[name="extra_vars1"]:radio[value="흰색무지기본(11000원)"]').attr("checked",true);
 $j('input:radio[name="extra_vars3"]:radio[value="없슴"]').attr("checked",true);
 $j('input:radio[name="extra_vars4"]:radio[value="선불3000원"]').attr("checked",true);

 $j('input[name="extra_vars5"]').attr("readonly",true);
 $j('input[name="extra_vars5"]').css("width","100px");
 $j('input[name="extra_vars5"]').css("font-weight","bold");
 $j('input[name="extra_vars5"]').css("font-size","18px");
 $j('input[name="extra_vars5"]').css("color", fontColor);
 $j('input[name="extra_vars5"]').css("height","40px");
 $j('input[name="extra_vars5"]').css("text-align","right");
 $j('input[name="extra_vars5"]').css("background-color", "transparent");
 $j('input[name="extra_vars5"]').css("border", "0", "solid","black");
 //$j('input[name="extra_vars5"]').after("<span>원<span>");
  
 $j('input[name="extra_vars5"]').css("border", "1","text-align","right","width","50px");   
 $j('.exForm').click(function(){
  var extra1 = $j('input:radio[name="extra_vars1"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra3 = $j('input:radio[name="extra_vars3"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra4 = $j('input:radio[name="extra_vars4"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra2 = $j('select[name="extra_vars2"]').val().replace(/[^0-9]/gi,"")*1;
  var totalPrice = extra1*extra2+(extra3*extra1/2)+extra4;
  $j('input[name="extra_vars5"]').attr("value",totalPrice+"원");
  });

  $j('select[name="extra_vars2"]').change(function(){
  var extra1 = $j('input:radio[name="extra_vars1"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra3 = $j('input:radio[name="extra_vars3"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra4 = $j('input:radio[name="extra_vars4"]:checked').val().replace(/[^0-9]/gi,"")*1;
  var extra2 = $j('select[name="extra_vars2"]').val().replace(/[^0-9]/gi,"")*1;
  var totalPrice = extra1*extra2+(extra3*extra1/100)+extra4;
  $j('input[name="extra_vars5"]').attr("value",totalPrice+"원");
 });
 
});
</script>

 

위에서 빨간색 부분extra_vars1을 사용자정의 단일선택(radio)에서 단일선택(single select)로 바꾸어서 똑같은 결과값을 내고 싶은데 초보라 생각보다 쉽지가 않습니다. radio를 select나 single select로 단순변경해보니 안되네요ㅠㅠ

  • profile

    대략적으로 이해가 되나 extra_vars3옵션에 따라 나누기2 , 나누기100이 되는게 무엇인지 궁금하군요.

    만약 높은 숫자일경우에는 계산이 맞지 않을것으로 예상되어 보입니다만...

     

    옛날생각이 나서 몇줄 더 적어봅니다. 고갑게 보시지 말아 주시기를 부탁드려요^^;

    없슴은 한국 맞춤법상 올바른 맞춤법이 아닙니다.

    명사형의미가 결합된 단어로 "없음" 이 맞는 단어입니다.

    종결어미형식으로 사용되는 "-습니다"와 다른 성격이며

    "없습니다"의 준말이 아닙니다. 참고하시길 바랍니다.

     

    아래 빨강배경의 수정된 부분을 수정하시면 될듯합니다.

     

    <script type="text/javascript">

        var $j = jQuery.noConflict();   
        var fontColor ="rgb(224, 72, 165)";
     $j(document).ready(function(){
     $j('select[name="extra_vars1"]').val("흰색무지기본(11000원)").attr("selected", true);
     $j('input:radio[name="extra_vars3"]:radio[value="없"]').attr("checked",true);
     $j('input:radio[name="extra_vars4"]:radio[value="선불3000원"]').attr("checked",true);
     $j('input[name="extra_vars5"]').attr("readonly",true);
     $j('input[name="extra_vars5"]').css("width","100px");
     $j('input[name="extra_vars5"]').css("font-weight","bold");
     $j('input[name="extra_vars5"]').css("font-size","18px");
     $j('input[name="extra_vars5"]').css("color", fontColor);
     $j('input[name="extra_vars5"]').css("height","40px");
     $j('input[name="extra_vars5"]').css("text-align","right");
     $j('input[name="extra_vars5"]').css("background-color", "transparent");
     $j('input[name="extra_vars5"]').css("border", "0", "solid","black");
     //$j('input[name="extra_vars5"]').after("<span>원<span>");
      
     $j('input[name="extra_vars5"]').css("border", "1","text-align","right","width","50px");   
     $j('.exForm').click(function(){
      var extra1 = $j('select[name="extra_vars1"] option:selected').val().replace(/[^0-9]/gi,"")*1;
      var extra3 = $j('input:radio[name="extra_vars3"]:checked').val().replace(/[^0-9]/gi,"")*1;
      var extra4 = $j('input:radio[name="extra_vars4"]:checked').val().replace(/[^0-9]/gi,"")*1;
      var extra2 = $j('select[name="extra_vars2"] option:selected').val().replace(/[^0-9]/gi,"")*1;
      var totalPrice = extra1*extra2+(extra3*extra1/2)+extra4;
      $j('input[name="extra_vars5"]').attr("value",totalPrice+"원");
      });

      $j('select[name="extra_vars2"]').change(function(){
      var extra1 = $j('select[name="extra_vars1"] option:selected').val().replace(/[^0-9]/gi,"")*1;
      var extra3 = $j('input:radio[name="extra_vars3"]:checked').val().replace(/[^0-9]/gi,"")*1;
      var extra4 = $j('input:radio[name="extra_vars4"]:checked').val().replace(/[^0-9]/gi,"")*1;
      var extra2 = $j('select[name="extra_vars2"] option:selected').val().replace(/[^0-9]/gi,"")*1;
      var totalPrice = extra1*extra2+(extra3*extra1/100)+extra4;
      $j('input[name="extra_vars5"]').attr("value",totalPrice+"원");
     });
     
    });
    </script>

  • ?
    고맙습니다.한번 적용해 보겠습니다^^*
  • ?
    적용해보니 잘 됩니다. extra_vars3은 extra_vars1 의 기본 선택에 따른 추가선택입니다.^^ 즉 extra_vars1값에 따라 extra_vars3의 값이 변동이 됩니다. 제가 근처까지는 갔었는데 option:selected의 option은 제 능력으로는 꿈에도 생각하지 못했을 겁니다. 구글링으로 검색된 웬만한 연산 스크립터는 다 적용을 해 봤는데도 안 되었거든요.... 그리고 여담이지만 "없음"은 재작년부터 잘못된 단어라고 소리를 들었었는데 방치하다시피 내 버려둔 사이트라 고칠 생각도 안 했습니다. 이야기해 주시지 않았으면 또 그대로 갈 뻔했네요. "option:selected" 앞으로 다양하게 응용을 할 수 있을 것 같습니다. 다시 한번 감사드립니다.