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
und genau da legt mein Problem ;-(
Die
scheint übersprungen zu wedern, da der Code einfach weiter ausgeführt wird.
Funktion:
Der Komplette Code samt des der Funktion:
Der HTMl-Code:
Für jede Unterstützung/Hilfe bin ich sehr dankbar!!
Grüße
Messmar
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;
Die
HTML:
return false;
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