使用jquery检查字符串是否为空

Mik*_*key 1 html javascript php jquery

我正在运行客户端验证javascript,它将在验证数据后通过ajax帖子提交表单.这是javascript:

$(".button").click(function() {

            $(".error").hide();

            var name = $(":input.name").val();
            if ((name == "") || (name.length < 4)){

                $("label#nameErr").show();
                $(":input.name").focus();
                return false;
            }

            var email = $(":input.email").val();
            if (email == "") {

                $("label#emailErr").show();
                $(":input.email").focus();
                return false;
            }


            var phone = $(":input.phone").val();
            if (phone == "") {

                $("label#phoneErr").show();
                $(":input.phone").focus();
                return false;
            }

            var comment = $("#comments").val();
            if ((!comment) || (comment > 100)) {

                $("label#commentErr").show();
                $("#comments").focus();
                alert("hello");
                return false;
            }

            var info = 'name:' + name + '&email:' + email + '&phone:' + phone + '&comment:' + comment;
            var ajaxurl = '<?php echo admin_url("admin-ajax.php"); ?>';
            alert(info);

            jQuery.ajax({

                type:"post",
                dataType:"json",
                url: myAjax.ajaxurl,
                data: {action: 'submit_data', info: info},
                success: function(response) {
                    if (response.type == "success") {

                        alert("success");
                    }
                    else {

                        alert("fail");
                    }
                }
            });

            $(":input").val('');
            return false;


        });
Run Code Online (Sandbox Code Playgroud)

四个输入字段是名称,电子邮件和电话的三个文本输入,然后是注释/查询部分的一个文本区域.问题是,如果我将textarea留空或输入超过100个字符,则脚本不会进入if((!comment)||(comment> 100))语句.我想知道是否有一个不同的值被分配给textarea当它是空白时阻止代码看到它是空的?

Som*_*ens 21

你需要检查length属性comment(也有一些额外的parens.它们不会破坏任何东西,但不需要).

if (!comment || comment.length > 100) {
Run Code Online (Sandbox Code Playgroud)

目前发生的是你正在尝试确定一个给定的字符串是否小于一个数字,这是非常愚蠢的,所以JS宣称它是假的.检查comment.length将其与数字进行比较,这是您希望它执行的操作.

!comment因为空字符串是假的,但你认为是空的可能不是(例如,带空格的字符串是非空的:) ' '.使用.trim()以消除讨厌的空白:

if (!comment.trim() && comment.length > 100)
Run Code Online (Sandbox Code Playgroud)

(作为旁注,以上都不需要jQuery,它都是JavaScript)