jQuery(this).val()。trim未定义

时间:2017-10-21 16:02:42

标签: jquery wordpress

可能导致主题错误的原因是什么?

我正在制作Wordpress插件,我不是原作者。该插件已售出,我正在尝试协助新所有者(非开发人员)更新插件。

该插件具有多列表类型配置文件字段扩展的选项。但是,该字段未显示在注册页面上,因为注册部分中没有该代码。我已经添加了代码以在注册页面上显示此字段,它似乎可以工作,直到单击“注册”按钮。

问题是如果选择了任何多列表项,则会抛出主题错误并且不会发生注册。只要该字段没有选择,就没有错误并且会进行注册。

我不知道究竟发生了什么,我想我会在一个console.log()调用中显示' this'变量,看看我是否能检测到任何错误。这并不能证明有所帮助。这种错误是由不匹配的数据类型引起的吗?我在这里处理jQuery和对象的问题。我试图尽快学习,但这个让我很难过。

这是PHP代码段:

//Multilist type field
if ($extension->wps_extension_type == 'multilist'):
   $values = explode(',', get_post_meta($extension->ID, 'wps_extension_default', true));
      $selected = $current ? $current : array();
      $item_html .= '<div class="wps_registration_field"><select id="'.$key.'" rel="'.$extension->ID.'" class="wps_registration_value wps_registration_multilist'.$mand.'" multiple="multiple" data-key="'.$key.'" size="'.sizeof($values).'" style="width: 400px;">';
   $all_values = explode(',', get_post_meta($extension->ID, 'wps_extension_default', true));
   if ($all_values):
      foreach($all_values as $value):
         $item_html .= '<option id="'.$key.'" rel="'.$extension->ID.'" class="wps_registration_value" value="'.$value.'">'.$value.'</option>';
      endforeach;
   endif;
   $item_html .= '</select></div>';
   if ($mand) $item_html .= $mandatory;
endif;

这里是jQuery的代码片段:

// Registration
jQuery("#wps_register_submit").click(function (event) {
    if (jQuery('#wps_registration_dummy_field').val() == '') {
        jQuery('#wps_register_error').hide();

        // Check for mandatory fields
        var found = false;
        var my_var = jQuery(this).val();
        console.log('This value: ' + JSON.stringify(my_var));
        jQuery('.wps_register_mandatory').removeClass('wps_field_error');
        jQuery('.wps_register_mandatory').each(function(i, obj) {
            if (jQuery(this).css('display') != 'none' && jQuery(this).attr('id').substr(0, 4) != 's2id' && jQuery(this).val() == '') {
                jQuery(this).fadeOut().fadeIn().addClass('wps_field_error');
                found = true;
            }
            if (jQuery(this).val() !== null) {
                var my_var = jQuery(this).val();
                console.log('This value: ' + JSON.stringify(my_var));
                if (jQuery(this).val().trim() == '') {
                    if (jQuery('#s2id_'+jQuery(this).attr('id')).length > 0) {
                        jQuery('#s2id_'+jQuery(this).attr('id')).addClass('wps_field_error');
                        found = true;
                    }
                }
            }
        });
        if (found) {
            // Missing mandatory fields
        } else {
            jQuery("body").addClass("wps_wait_loading");
            jQuery("#wps_register_submit").attr("disabled", true);

            // Get any profile extensions
            var exts = [];
            jQuery('.wps_registration_value').each(function(i, obj) {
                var id = jQuery(this).attr('rel');
                if (id != undefined) {
                    var value = jQuery(this).val();
                    if (value) {
                        var ext = {};
                        ext['key'] = jQuery(this).data('key'),
                        ext['id'] = id;
                        ext['value'] = value;
                        exts.push(ext);
                    }
                }
            });
            var wps_reg_code = '';
            if (jQuery('#wps_reg_code').length) {
                wps_reg_code = jQuery('#wps_reg_code').val();
            }
            jQuery.post( wps_login_ajax.ajaxurl, {
                action : 'wps_register_check',
                username : jQuery('#wps_register_username').val(),
                email : jQuery('#wps_register_email').val(),
                email2 : jQuery('#wps_register_email2').val(),
                first_name : jQuery('#wps_register_firstname').val(),
                last_name : jQuery('#wps_register_familyname').val(),
                nickname : jQuery('#wps_register_nickname').val(),
                display_name : jQuery('#wps_register_display_name').val(),
                captcha : jQuery('#wps_captcha_form').val(),
                wps_reg_code : wps_reg_code,
                wpspro_home : jQuery('#wps_register_wpspro_home').val(),
                wpspro_country : jQuery('#wps_register_wpspro_country').val(),
                password : jQuery('#wps_register_password').val(),
                password_confirm : jQuery('#wps_register_password_confirm').val(),
                registration_url : jQuery('#wps_registration_url').val(),
                register_auto : jQuery('#register_auto').val(),
                exts: exts,
                },
                function(response) {
                    jQuery("#wps_register_submit").attr("disabled", false);
                    if (response.substr(0, 2) != 'OK' && response.substr(0, 3) != 'URL') {
                        jQuery("body").removeClass("wps_wait_loading");
                        // Error, show message
                        jQuery('#wps_register_error').removeClass('wps_success').addClass('wps_error');
                        jQuery('#wps_register_error').html(response).slideDown('fast');
                    } else {
                        if (response.substr(0, 3) == 'URL') {
                            // Success, redirect if need be
                            window.location = response.substring(3);
                        } else {
                            jQuery("body").removeClass("wps_wait_loading");
                            // Success, show message
                            jQuery('#wps_register_username').val('');
                            jQuery('#wps_register_email').val('');
                            jQuery('#wps_register_email2').val('');
                            jQuery('#wps_register_firstname').val('');
                            jQuery('#wps_register_familyname').val('');
                            jQuery('#wps_register_error').removeClass('wps_error').addClass('wps_success');
                            jQuery('.wps_registration_row').hide();
                            jQuery('.wps_registration_item').hide();
                            jQuery("#wps_register_submit").hide();
                            jQuery('#wps_register_error').html(response.substring(2)).slideDown('fast');
                        }
                    }
                }
            );
        }
    }

});

您可以在http://stage.alkpositive.org/login/上的暂存网站上查看此操作。

感谢您的帮助。

0 个答案:

没有答案