自定义验证功能 - javascript

时间:2013-10-22 10:51:13

标签: javascript jquery ajax

我正在构建“SKU订单”页面,检查数据库中是否存在SKU,如果存在,则通过ajax显示其名称。到目前为止一切顺利,但如果发现错误,我无法禁用提交按钮。

function sku_check(){

    // Definir array de erros e começar incrementação
    var haErros = new Array();
    var i = 0;
    console.log(haErros);

    jQuery(".enc-cod-tab").each(function(){
    var tudo = jQuery(this);

    // Incrementar posição no array
        ++i

    jQuery(this).find("#remover").click(function() {
        jQuery(tudo).remove();
    });

    jQuery(this).keyup(function(){


    var input_cod = jQuery(this).find("#sku");
    var tick = jQuery(this).find("#tick");
    var cross = jQuery(this).find("#cross");
    var nome_do_produto = jQuery(this).find("#nome_do_produto");
    var codigo_inexistente = jQuery(this).find("#codigo_inexistente");

    var sku = jQuery(input_cod).val();

    if(sku == "" || sku.length < 7){
        jQuery(input_cod).css('border', '1px #CCC solid');
        jQuery(tick).hide();
        jQuery(nome_do_produto).hide();
    } else {
        jQuery.ajax({
            type: "POST",
            url: "scripts/verificar_cod.php",
            data: 'sku='+ sku,
            cache: false,
            success: function(response){
                if(response.length > 0){
                    jQuery(input_cod).css('border', '1px #090 solid');
                    jQuery(tick).fadeIn();
                    jQuery(cross).hide();
                    jQuery(nome_do_produto).html(response);
                    jQuery(nome_do_produto).fadeIn();
                    jQuery(codigo_inexistente).hide();
                    haErros[i] = 'falso';
                    //jQuery("#btn_adicionar").css("opacity", 1);
                    //jQuery("#btn_adicionar").removeAttr("disabled")
                } else {
                    jQuery(input_cod).css('border', '1px #C33 solid');
                    jQuery(cross).fadeIn();
                    jQuery(tick).hide();
                    jQuery(nome_do_produto).hide();
                    jQuery(codigo_inexistente).fadeIn();
                    haErros[i] = 'verdadeiro';
                    //jQuery("#btn_adicionar").css("opacity", 0.2);
                    //jQuery("#btn_adicionar").attr("disabled", "disabled")}
                }
            }
        })
    }

    })

    // Função para ver se há erros
    jQuery(this).keydown(function(){
    if (jQuery.inArray("verdadeiro", haErros) != -1){
        jQuery("#btn_adicionar").css("opacity", 0.2);
        jQuery("#btn_adicionar").attr("disabled", "disabled");
    } else {
        jQuery("#btn_adicionar").css("opacity", 1);
        jQuery("#btn_adicionar").removeAttr("disabled");
    }
    });

    })};

正如您所看到的,我正在尝试在数组中插入值“falso”(如果没有错误),并且“verdadeiro”如果ajax无法从数据库中检索SKU。然后,在“keyup”函数中,我正在检查数组中的值“verdadeiro”,如果存在,则提交按钮将被禁用。

这仅适用于第二个(依此类推)SKU输入,并且仅在我将SKU错误输入2个或更多字母后才能使用。

示例:sku123存在。如果我输入“sku1234”,它不会禁用提交按钮,但如果我输入“sku12345”,那么它会按预期工作。

对于发生了什么有任何想法?

0 个答案:

没有答案
相关问题