eridamega Posted April 26, 2018 Share Posted April 26, 2018 (edited) Hola Saludos a todos Tengo una función jquery que limita los caracteres permitidos en la personalización del producto. En la Categoría A con id 1 el limite de personalización para los productos son 18 caracteres y en la Categoría B con id 2 el limite con 25 caracteres la función validar() esta incluida en el submit del tpl personalizacion que se inlcuye en el tpl product, como haria para que en la cat A me limite a 18 y en la B a 25 Por por adelantado gracias function validar(){ //Almacenamos los valores nombre=$('.product-message').val(); //Comprobamos la longitud de caracteres if (nombre.length<18){ return true; } else { alert('Maximo 18 Caracteres'); return false; } } Edited April 26, 2018 by eridamega (see edit history) Link to comment Share on other sites More sharing options...
jgamio Posted April 26, 2018 Share Posted April 26, 2018 (edited) En 1.6 declaras una variable en el tpl para usarla en el javascript {addJsDef combinations=$combinations} Otra opcion aunque no muy elegante colocas un input hide con el valor y lo lees directo <input type="hidden" id="tunombre" value="depende de tu if"> var maxLongitud = $('#').val(); Edited April 26, 2018 by jgamio more info (see edit history) Link to comment Share on other sites More sharing options...
eridamega Posted April 26, 2018 Author Share Posted April 26, 2018 hace 16 minutos, jgamio dijo: En 1.6 declaras una variable en el tpl para usarla en el javascript {addJsDef combinations=$combinations} Otra opcion aunque no muy elegante colocas un input hide con el valor y lo lees directo <input type="hidden" id="tunombre" value="depende de tu if"> var maxLongitud = $('#').val(); Gracias por responder. @jgamio manejo poco el tema y realmente no comprendo como hacerlo, en cual tpl coloco la variable o como haria con el input. Disculpa la verdad no manejo mucho el tema Link to comment Share on other sites More sharing options...
jgamio Posted April 26, 2018 Share Posted April 26, 2018 que version de prestashop tienes Link to comment Share on other sites More sharing options...
eridamega Posted April 26, 2018 Author Share Posted April 26, 2018 hace 14 minutos, jgamio dijo: que version de prestashop tienes Perdón se me había olvidado ese gran dato, uso PS 1.7.3.1 Estuve gogleando y encontré esto, es adicionar al body una variable con el id de la categoria. En mi pobre conocimiento pienso obtener el dato de la categoria con un if si la categoria es 1 limitar 18 si la categoria 2 limtar 25 etc. La función iria en el trabajaría el prodcuto, pero no lo se hacer. si puedes sugerirme una idea para dummies lo agradecería en el alma var urlTopCat = jQuery("#breadcrumb_wrapper li:nth-child(3) > a").attr("href"); var urlTopCat = urlTopCat.split('dominio.com/'); urlTopCat = urlTopCat[1].split('-'); jQuery("body").addClass("category-top-"+urlTopCat[0]); Link to comment Share on other sites More sharing options...
jgamio Posted April 26, 2018 Share Posted April 26, 2018 A ver lo que quieres es conocer en que categoria esta el producto para cambiar el 18 que es el maximo de caracteres a el que te interese si es correcto necesitas algo que te indique que categoria estas utilizando eso es todo, ahora como lo hagas es como se te haga mas facil de entender. el codigo que me muestras lee el breadcumb y lo coloca en una clase, colocarlo en un div o input escondido es casi lo mismo son maneras de que sepas el id de la categoria eso es todo lo que yo te decia era lo siguiente colocas en el tpl un div o input escondido <input type="hidden" id="productMainCategoryId" value="{$product.id_category_default}" listo en el javascript solo llamas al input var productMainCategoryId = $('#productMainCategoryId').val(); hay ya tienes la categoria Link to comment Share on other sites More sharing options...
eridamega Posted April 30, 2018 Author Share Posted April 30, 2018 (edited) En 26/4/2018 a las 5:51 PM, jgamio dijo: A ver lo que quieres es conocer en que categoria esta el producto para cambiar el 18 que es el maximo de caracteres a el que te interese si es correcto necesitas algo que te indique que categoria estas utilizando eso es todo, ahora como lo hagas es como se te haga mas facil de entender. el codigo que me muestras lee el breadcumb y lo coloca en una clase, colocarlo en un div o input escondido es casi lo mismo son maneras de que sepas el id de la categoria eso es todo lo que yo te decia era lo siguiente colocas en el tpl un div o input escondido <input type="hidden" id="productMainCategoryId" value="{$product.id_category_default}" listo en el javascript solo llamas al input var productMainCategoryId = $('#productMainCategoryId').val(); hay ya tienes la categoria @jgamio No sabes lo eternamente agradecido que estoy. Por fin pude solucionar lo que necesitaba, hice un script lo dejare por si alguien lo necesita o lo puede mejorar. php Adicione el input hidden con la variable <input type="hidden" id="productMainCategoryId" value="{$product.id_category_default}" jquery var productMainCategoryId = $('#productMainCategoryId').val(); if (productMainCategoryId == 23 || productMainCategoryId == 27 || productMainCategoryId == 28) { $("small.float-xs-right").text('Limite 20 caracteres'); function validar() { //Almacenamos los valores limiteCaracter = $('.product-message').val(); //Comprobamos la longitud de caracteres if (limiteCaracter.length < 21) { //alert('La formula funciono. texto agregado'); return true; } else { $("small.float-xs-right").html("<span style='color: #ff0000;'>Se excede el limite permitido</span>"); //alert('La formula funciono, pero te pasaste de los caracteres'); return false; } } } else if (productMainCategoryId == 29 || productMainCategoryId == 30 || productMainCategoryId == 31) { $("small.float-xs-right").text('Limite 18 caracteres'); function validar() { //Almacenamos los valores limiteCaracter = $('.product-message').val(); //Comprobamos la longitud de caracteres if (limiteCaracter.length < 19) { //alert('La formula funciono con 18. texto agregado'); return true; } else { $("small.float-xs-right").html("<span style='color: #ff0000;'>Se excede el limite permitido</span>"); //alert('La formula funciono, pero te pasaste de los caracteres'); return false; } } } else if (productMainCategoryId == 26) { $("small.float-xs-right").text('Limite 25 caracteres'); function validar() { //Almacenamos los valores limiteCaracter = $('.product-message').val(); //Comprobamos la longitud de caracteres if (limiteCaracter.length < 26) { //alert('La formula funciono con 25. texto agregado'); return true; } else { $("small.float-xs-right").html("<span style='color: #ff0000;'>Se excede el limite permitido</span>"); //alert('La formula funciono, pero te pasaste de los caracteres'); return false; } } } else if (productMainCategoryId == 24) { $("small.float-xs-right").text('Limite 15 caracteres'); function validar() { //Almacenamos los valores limiteCaracter = $('.product-message').val(); //Comprobamos la longitud de caracteres if (limiteCaracter.length < 16) { //alert('La formula funciono con 15. texto agregado'); return true; } else { $("small.float-xs-right").html("<span style='color: #ff0000;'>Se excede el limite permitido</span>"); //alert('La formula funciono, pero te pasaste de los caracteres'); return false; } } } else if (productMainCategoryId == 33) { $("small.float-xs-right").text('Limite 28 caracteres'); function validar() { //Almacenamos los valores limiteCaracter = $('.product-message').val(); //Comprobamos la longitud de caracteres if (limiteCaracter.length < 29) { //alert('La formula funciono con 15. texto agregado'); return true; } else { $("small.float-xs-right").html("<span style='color: #ff0000;'>Se excede el limite permitido</span>"); //alert('La formula funciono, pero te pasaste de los caracteres'); return false; } } } Muchisimas gracias Lo ultimo para que quede al 100% seria que el texto que adiciona al comprobar el id, por ejemplo el texto por defecto es 18 caracteres. el script lo cambia por limte 25 caracteres pero cuando seleciono otro atributo de una lista desplegable vuelve a poner 18 caracteres como podría evitar eso?? Edited April 30, 2018 by eridamega (see edit history) Link to comment Share on other sites More sharing options...
jgamio Posted May 1, 2018 Share Posted May 1, 2018 Revisa el product.js de tu plantilla hay se actualizan los valores al cambiar los atributos desde hay puedes seguir usando tu variable pero tienes que localizar la que cambia el texto Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now