No meu site, tenho dois campos de entrada: Título e Código de estoque. Eu tenho dois objetivos:
O texto do campo Título deve ser copiado para o estoque campo de código conforme o usuário insere texto no campo de título.
Também quero que caracteres não alfanuméricos sejam removidos durante a cópia.
eu encontrei este tutorial isso explica como realizar o primeiro objetivo. Aqui está o meu exemplo de trabalho:
Para a segunda parte, achei difícil encontrar um tutorial sobre a remoção de caracteres no Jquery, pois a maioria dos tutoriais é para JavaScript.
eu encontrei este tutorial e tentei integrá-lo ao meu código da seguinte maneira:
(function ($) {
$(document).ready(function () {
$("input#edit-title-fragment").keyup(function () {
var str = $(this).val();
str = str.replace(/[^a-zA-Z 0-9]+/g, "");
var txtClone = $(this).val();
$("input#edit-sku-fragment").val(txtClone);
});
});
})(jQuery);
No entanto, isso não funciona. Alguém poderia me dizer o que estou fazendo de errado. Obrigado!
Respostas:
15 para resposta № 1Aqui está o que você está fazendo:
// Get the user input from "this" and put it in str variable
var str = $(this).val();
// Remove all non alpha-nums from str and store it back in the str variable
str = str.replace(/[^a-zA-Z 0-9]+/g, "");
// Get the user input from "this" (yes, again) and put it in the txtClone variable
var txtClone = $(this).val();
// Set your other textbox to be the value in txtClone
$("input#edit-sku-fragment").val(txtClone);
Você viu o erro? Você deve configurá-lo para str
em vez de.
$("input#edit-sku-fragment").val(str);
Que agora funciona: http://jsfiddle.net/2gezC/2/
Além disso, como os comentários observaram, o jQuery é uma biblioteca criada em JavaScript; está escrito no próprio JavaScript, como você pode ver navegando no código-fonte; https://github.com/jquery/jquery