2010-12-21 10 views
0

Warum funktioniert das bei einigen Leuten und nicht bei anderen? Andere klicken einfach auf den Button und es funktioniert nicht. Es begann damit, nachdem ich die Nospaces-Validierungsmethode hinzugefügt hatte. Irgendwelche Vorschläge würden sehr geschätzt werden.jquery Validierung funktioniert in einigen Browsern, aber nicht in anderen

<form method="post" action="#" id="client_form" class="order-form"> 
<input type="text" id="user_name" name="user_name" class="req nospaces" /> 
</form> 
<button id="client_next_btn"><?php echo($content->getString('order')); ?></button> 
<script type="text/javascript"> 

$(function() 
{ 
jQuery.validator.addClassRules('req', { required: function (el) { return $(el).is(':visible') } }); 

var nums = ['0','1','2','3','4','5','6','7','8','9']; 
var letters = ['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m']; 
var alphanumeric = nums.concat(letters); 

jQuery.validator.addMethod("nospaces", function(value, element) { 
    var val = value.split(""); 
    var bool = true; 
    for (var i in val) 
    { 
     if (jQuery.inArray(val[i], alphanumeric) == -1) 
     { 
      bool = false; 
      break; 
     } 
    } 
    return bool; 
}, "* <?php echo ($content->getString('no_spaces')); ?>"); 

$('#client_form').validate(); 
$('#client_next_btn').click(function() 
{ 
    $('#client_message').empty(); 

    if ($('#client_form').validate().form()) 
    { 
       alert('works'); 
      } 
    } 

}

+0

jsFiddle und zwicken Sie es, bis es keine Fehler gibt, es sei denn Sie kopierten es schlecht – qwertymk

Antwort

0

Gerade nachdem ich die Frage gestellt, ich die Antwort herausgefunden - addMethod gehen zusammen mit addClassRules und für sich nicht

1

Nur als Tipp, können Sie loswerden dies:

jQuery.validator.addClassRules('req', { 
    required: function (el) { return $(el).is(':visible') } 
}); 

und die in required Klasse gebaut werden, benutzen, fügen Sie einfach die ignore option zu Ihrem .validate() AnrufauszuschließenElemente wie folgt:

$('#client_form').validate({ ignore: ':hidden' }); 
Verwandte Themen