2012-06-05 4 views
0

텍스트 입력 필드의 값 (수량)을 URL에 추가하려고합니다. 물론 나는 이것을 작동시킬 수 없다. 내가있어 무엇양식 필드를 URL에 추가하십시오.

은 다음과 같습니다

<form class="formProduct" id="formProduct" action="#" method="post"> 
<input type="text" name="quantity" id="formProductQuantity" value="{{ product.stock.minimum }}" /> // text field with quantity 
<a class="button blue opener" href="" title="{{ 'Add to cart' | t }}"><span>{{ 'Add to cart' | t }}</span></a> // submit button 
</form> 

<script> 
var addUrl = "http://shop.com/cart/add/123456/?quantity="; // 123456 is the product id 

asset("#formProduct"); 

function asset(product){ 

    $(product + " input#formProductQuantity").val("1"); 
    $(product + " #formProductQuantity").keyup(function() { 
     var val = $(product + " input#formProductQuantity").first().val(); 
    }); 

    $(product + " .opener").click(function() { 
      var val = $(product + " input#formProductQuantity").first().val(); 

       // Go to page 
       window.location.href = addUrl + val; 

    }); 
} 
</script> 

그래서 내가하려고하는 것은, 예를 들어 http://shop.com/cart/add/123456/?quantity=100에 전달하는 형태로 채워진 양을 전달하는 것입니다. 위의 코드는이 포럼에서 찾았지만 제대로 작동하지 않습니다.

어떤 도움을 더는 내가이 일을하는 데 여기있는 모든 도움에

UPDATE

확인을 들으을 환영합니다. 모든 의견이나 수정 사항은 여전히 ​​환영 받고 있습니다. 기능 코드는 다음과 같습니다

<script type="text/javascript"> 
var addUrl = "http://shop.com/cart/add/123456/?quantity="; // 123456 is the product id 

jQuery(document).ready(function(){ 
    asset("#formProduct"); 
    }); 
function asset(product){ 

jQuery(product + " input#formProductQuantity").val("1"); 
jQuery(product + " #formProductQuantity").keyup(function() { 
    var val = jQuery(product + " input#formProductQuantity").first().val(); 
}); 

jQuery(product + " .opener").click(function(event) { 
    event.preventDefault(); 
    $.get($(this).attr('href'), function(data, status) { 
     var val = jQuery(product + " input#formProductQuantity").first().val(); 

      // Go to page 
      window.location.href = addUrl + val; 
    $("#dialog").dialog("open"); 
      return false; 

    }); 
})} 

+0

skashi의 대답은 작동합니다 (+1). 나는 그저 같은 것을 제안하려고했다. – hade

답변

2

제출 버튼에 자바 스크립트를 추가하려고합니다. 그러면 자바 스크립트를 통해 실행되지만 양식은 계속 제출되므로 window.location.href는 실행되지 않습니다. 당신이해야 할 일은 다음과 같습니다.

return false; 자산의 끝

() 함수 :

$(product + " .opener").click(function() { 
    var val = $(product + " input#formProductQuantity").first().val(); 

    // Go to page 
    window.location.href = addUrl + val; 
    return false; 
}); 

이것은 당신이 필요로 window.location.href 리디렉션 할 수 있도록 제출에서 양식을 중지합니다.

+0

나는 이것을 시도했지만 이제 URL은 정상적인 URL처럼 보입니다. 이렇게 : http://shop.com/productname. 여기서 "productname"은 실제 seo 제품 이름입니다. http://shop.com/cart/add/123456/?quantity=에 양식의 빈 "href"를 변경하면 URL이 정상적으로 보이지만 수량은 "quantity ="로 전달되지 않습니다. 분명히 코드에 잘못된 것이 있습니다. 아마 onclick = addUrl + val 또는 이와 비슷한 것이 필요할 것입니다. 내 능력이 너무 제한되어 있습니다. – Meules

+0

이것은 나를 위해 일하고있다. jQuery 코드를 다음과 같이 포장해야합니다. jQuery (document) .ready (function() { // 코드 }); 완성 된 코드 예제를 참조하십시오. http://pastebin.com/TbkLMc5F – skashi

+0

Google의 jquery API에 링크되어 있으므로이 링크를 사용하십시오. http://pastebin.com/zKAvGD7A – skashi

1

나는 당신이 URL을

+0

네, 맞아요, 고마워요! 그러나 이것은 어느 쪽도 효과가없는 것 같습니다. 나는 내가 뭘 잘못하고 있는지 정말로 볼 수 없다. 다른 해결책이 있습니까? – Meules

1

당신은 가까운를 통해 데이터를 전송합니다 양식을 제출하는 방법을 얻을 수 있습니다 생각합니다. 는 {{ '장바구니에 담기'| : 함수에

var val = $("#formProductQuantity").val(); 

var addUrl = "http://shop.com/cart/add/123456/?quantity=" + val 
top.location = addUrl 

업데이트 HREF를 : 당신이 #formProductQuantity에서 발을 원한다면 이것을 사용 t}} // submit 버튼 함수에서

이 추가 : 그들은 앵커를 클릭하면

$(".opener").attr("href", "http://shop.com/cart/add/123456/?quantity=" + val); 

이제 앵커 설정하고 갈 준비가되어 ... 그리고 멀리 우리가 간다 :-) 당신을 또한 target = "_ blank"를 추가하여 새 페이지에서 URL을 열 수 있습니다.

+0

나는 내 URL에 발을 원해. "http .... /? quantity = 100"처럼 – Meules

+0

의견을 보내 주셔서 감사합니다. 다시 이것은 작동하지 않습니다. 분명히 링크가 위에서 언급 한 정상적인 URL로 다시 변경됩니다. 분명히 빈 href 또는 동작에 링크를 추가해야합니다. 그런 다음 jquery는 "아마도 onclick"이나 뭔가로 할 수있는 url의 양을 넘어야합니다. 그걸 도와 줄 수있어? +1 당신의 도움;) – Meules

+0

나는 고통에되고 싶지 않아 ...하지만 어떻게 완전한 기능을 어떻게 보이나요? 처음으로 두 번째 작업을 할 때 더 이상 작동하지 않습니다 ... 나는 뭔가를 변경했지만 생각할 수는 없다고 생각합니다. – Meules

관련 문제