我正在构建一个“按 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”,如果 ajax 无法从数据库中检索 SKU,则插入“verdadeiro”。然后,在“keyup”函数中,我正在检查数组中的值“verdadeiro”,如果存在,提交按钮将被禁用。
这仅适用于第二个(等等)SKU 输入,并且仅在我将 SKU 输入错误 2 个或更多字母之后。
示例:sku123 存在。如果我输入“sku1234”,它不会禁用提交按钮,但如果我输入“sku12345”,那么它会按预期工作。
知道发生了什么吗?