Kann man eine private Funktion innerhalb Switch/Case aufrufen?

messmar

Erfahrenes Mitglied
Hallo zusammen,

wie es im Titel zu lesen ist... kann man eine private Funktion (innehalb eines Plugins) innerhalb
einer Switch/Case, die sich wiederum innerhalb eines jQuery-Plugins befindet ohne Weiteres
aufrufen?

Es scheint zum Teil zu funkt. aber nicht ganz... Ich habe innerhalb der p. Funktion un dzwar unter einer Bedingungen, die
HTML:
return false;
und genau da legt mein Problem ;-(

Die
HTML:
return false;
scheint übersprungen zu wedern, da der Code einfach weiter ausgeführt wird.

Funktion:
HTML:
    function mails(fMail, sMail) {
        El.find(fMail, sMail);
        var fM_V = fMail.val();
        var sM_V = sMail.val();
         
        if(fM_V){
             if(fM_V.match(/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) === null || fM_V !== sM_V){
                 fMail.css(newParams.property_1, newParams.value_1);
                 fMail.prev().css(newParams.property_2, newParams.value_2);
                 return false;
             }else{
                 fMail.css(newParams.property_1, newParams.value_4);
                 fMail.prev().css(newParams.property_2, newParams.value_3);
             }
        }
        return fMail, sMail;
    }

Der Komplette Code samt des der Funktion:

HTML:
    (function($){
        ;$.fn.formElements = function(userOptions){
            var defaults = {
                property_1: "border",
                value_1: "1px solid #ff0000",
                property_2: 'color',
                value_2: '#ff0000',
                value_3: '#000000',
                value_4: '1px solid #9d9d9c'
            };
    
            var newParams = $.extend(true, {}, defaults, userOptions);
            
            var tmp = {}; // object
            tmp[newParams.property_1] = newParams.value_1;
            tmp[newParams.property_2] = newParams.value_2;
            
            return this.each(function(){
                var El = $(this);
                
                           
    
                
                El.find($('input[type=submit]')).bind('click', function(){
                    return dn(El);
                });
                
                function dn(a){
                    //alert('xxx');
                    var regM = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
                    var regMnr = /\b[67]\d{8,9}\b/;
                    var doThis = true;
                    a.find(':text, select, :radio').not('input[type=hidden]').each(function(){
                        
                        var t = $(this);
                        var n = t.attr('name');
                        var v = t.val();
                        
                        switch(n){
                            case 'user.FirstName':
                                if(!v){
                                    $(this).css(newParams.property_1, newParams.value_1);
                                    $(this).prev().css(newParams.property_2, newParams.value_2);
                                    doThis = false;
                                }else{
                                    $(this).css(newParams.property_1, newParams.value_4);
                                    $(this).prev().css(newParams.property_2, newParams.value_3);
                                }
                                break;
                                
                                
                            case 'user.MobileNumber':
                                if(v){
                                    if(v.match(regMnr) === null){
                                        $(this).css(newParams.property_1, newParams.value_1);
                                        $(this).prev().css(newParams.property_2, newParams.value_2);
                                        doThis = false;
                                    }else{
                                        $(this).css(newParams.property_1, newParams.value_4);
                                        $(this).prev().css(newParams.property_2, newParams.value_3);
                                        $(this).val('34' + $(this).val());
                                    }
                                }
                                break;
                                    
                            case 'new_mail_1':
                                alert('t: ' + t + ' n: ' + n + ' v: ' + v);
                                return mails(t, $('input[name="user.secondEmail"]'));                            
                                break;
                        }
                    });
                    return doThis ? true : false;
                }
                
                
                function mails(fMail, sMail){
                    
                   El.find(fMail, sMail);
                   var fM_V = fMail.val();
                   var sM_V = sMail.val();
                   
                   if(fM_V){
                        if(fM_V.match(/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) === null || fM_V !== sM_V){
                            alert(fM_V);
                            fMail.css(newParams.property_1, newParams.value_1);
                            fMail.prev().css(newParams.property_2, newParams.value_2);
                            return false;
                        }else{
                            fMail.css(newParams.property_1, newParams.value_4);
                            fMail.prev().css(newParams.property_2, newParams.value_3);
                        }
                   }
                   return fMail, sMail;
                }
            });
        };
    })(jQuery);
    $('#userData').formElements();

Der HTMl-Code:
HTML:
<form name="userData" id="userData" action="done.jsp" method="post">
    <input type="hidden" name="self" value="true" />
    <br><br>
    <input type="text" name="user.FirstName" value="" maxlength="200"  class="input_firstName" />
    <br><br>
    <label class="label_clear">E-mail</label>
    <input type="text" name="mainMail" value="" readonly class="input_mail" />
    <br><br>
    <input type="text" name="user.MobileNumber" value="" maxlength="9" class="input_Mobil" /> 
    <br>
    <input type="text" name="new_mail_1" value="" class="input_mail" />
    <input type="text" name="user.secondEmail" value="" id="smail" class="input_mail" />
    <br><br>
    <input type="submit" name="btnSubmit" value="" class="btnSubmit" />
</form>

Für jede Unterstützung/Hilfe bin ich sehr dankbar!!

Grüße
Messmar
 
Morgen zusammen,

das ist ein wenig spät, aber ich kam letzte Zeit aus privaten Gründen, einfach nicht dazu an die Sache weiter zu arbeiten... anyway, es ist gelöst und zwar ich habe einfach die folgende private Variable:
Code:
var doThis = true;
in ner globalen geändert und jetzt funktionier das Ganze.

Danke & Gruß
Messmar
 

Neue Beiträge

Zurück