使用jQuery检查管理区域字段onblur中的字符串长度

时间:2015-08-13 作者:Kev

我有一个自定义字段(我使用高级自定义字段插件)设置为在创建新帖子时显示。用户必须输入4位数的年份。不超过4个字符,不少于。我的职能如下。php代码:

function make_year_created_equal_4_chars_init(){
  wp_enqueue_script(\'jquery\');
}
function make_year_created_equal_4_chars() {
  echo "<script type=\'text/javascript\'>\\n";
  echo "
      jQuery(\'#acf-field-artwork_created\').blur(function() {
      selected = jQuery(\'#acf-field-artwork_created\').length;
        if (selected != 4) {
            alert( \'A 4 digit year must be entered in the Artwork Created field\' );
        }
    });
";
echo "</script>\\n"; 
}
add_action(\'admin_init\', \'make_year_created_equal_4_chars_init\');
add_action(\'edit_form_advanced\', \'make_year_created_equal_4_chars\');
add_action(\'edit_page_form\', \'make_year_created_equal_4_chars\');
这是我的标记:

<input type="text" id="acf-field-artwork_created" class="text" name="fields[field_52e10c7db579e]" placeholder="" />
除一个方面外,这一切都很好。我没有报告JS错误,如果输入的字符少于4个或多于4个,那么一旦我离开字段(onblur),就会触发错误警报。

我的问题是,即使我使用4个字符,它仍然会触发。

感谢您的帮助。

1 个回复
最合适的回答,由SO网友:webtoure 整理而成

您的代码有许多问题,但最重要的是您需要调用val 在文本输入上。以下是您的make_year_created_equal_4_chars 函数可能看起来:

function make_year_created_equal_4_chars() {
?>
<script type=\'text/javascript\'>
    // This is a shorthand for "jQuery(document).ready()"
    jQuery(function($) { 
        $(\'#acf-field-artwork_created\').blur(function() {
            // Please notice the declaration of \'selected_length\'.
            // It is important to declare it with \'var\' so that
            // you don\'t end up with it in the global scope.
            var selected_length = $(this).val().length;

            if (selected_length != 4) {
                alert( \'A 4 digit year must be entered in the Artwork Created field\' );
            }
        });
    });
</script>
<?php
}

结束

相关推荐

JQuery在WordPress中冲突,在HTML中工作正常

我一直在做一个设计,它在HTML中工作得很好,但在WordPress中使用时,jQuery存在巨大的冲突。这是整个剧本。js文件优先:jQuery(document).ready(function($) { /* Parallax */ $(\'.intro\').parallax({imageSrc: \'file:///C:/Users/Hardeep%20PC/Desktop/yeah-me/assets/images/intro.jpg\', bleed: \'10