jQuery:按钮在.removeClass之后不会提交

jQuery: Button will not submit after .removeClass

本文关键字:提交 之后 removeClass 按钮 jQuery      更新时间:2023-09-26

我正在尝试在Wordpress中执行一些基本的表单验证,这或多或少是我第一次尝试JS/jQuery。

我有下面的脚本,如果_sku值为空,它会阻止按钮提交表单。这是有效的,但是在函数被激发,并且用户在"_sku"中输入值之后,按钮仍然被禁用。将按钮重新设置为活动状态的最佳方法是什么。

(function($) {
    $( document ).ready(function() {
         jQuery('#post').submit(function() {
            if ($("#_sku").val() == '') {
                alert("Please enter a valid GTIN");
                $('#ajax-loading').hide();
                $('#publish').removeClass('button-primary-disabled'); 
            }
            return false;
        });
    });
}(jQuery));

试试这个:将return false移动到if语句内的

      jQuery('#post').submit(function() {
        if ($("#_sku").val() == '') {
            alert("Please enter a valid GTIN");
            $('#ajax-loading').hide();
            $('#publish').removeClass('button-primary-disabled'); 
            return false; // move this inside the if statement
        }
    });

这是因为如果return false;在if语句的外部,则即使_sku的值为

,它也将返回false

当函数到达return false行时,您总是要退出它。尝试:

$( document ).ready(function() {
         jQuery('#post').submit(function() {
            if ($("#_sku").val() == '') {
                alert("Please enter a valid GTIN");
                $('#ajax-loading').hide();
                $('#publish').removeClass('button-primary-disabled');
                return false; 
            }
        });
    });

无论字段_sku 的验证结果如何,您总是从代码中返回false

如果您可以在php文件中编辑代码,那么一旦提交表单。然后,只需像现在这样显示禁用了"_sku"的值。但输入类型的名称应该是其他名称。并将该值保存在名称为_sku的隐藏值中。这将不会再次请求_sku。

this may help you,
(function($) {
    $( document ).ready(function() {
         jQuery('#post').submit(function() {
            if ($("#_sku").val() == '') {
                alert("Please enter a valid GTIN");
                $('#ajax-loading').hide();
                $('#publish').removeClass('button-primary-disabled'); 
                return false;
            } else {
                $('#ajax-loading').hide();
                $('#publish').addClass('button-primary-disabled'); 
                return true;
            }
        });
    });
    enter code here
}(jQuery));