2014-10-20 8 views
0

Я использую плагин под названием pStrength.jquery.js, и он работал ранее, но по какой-то причине он остановился, я не уверен, что я делаю что-то неправильно.Валидатор проверки пароля не отправляет форму

Это код на моей странице

<cfinclude template="header.cfm"> 
    <cfparam name="ERROR" default=""> 
    <cfparam name="FORM.ACTION" default=""> 
    <cfparam name="form.NEWPASS1" default=""> 
    <Cfparam name="form.NEWPASS2" default=""> 
    <cfparam name="message" default=""> 

    <style> 
     #myElement1, #myElement2 { 
     padding:4px; 
     margin:2px; 
     border:solid 1px #999; 
     } 

     #myElement2 { 
     background-color:#036; 
     } 

    div { 
     margin-left:20px; 
     margin-top:6px; 
    } 
    .left { 
     float:left; 
    } 
    .clear { 
     clear:both; 
    } 
    </style> 


    <table border="0" cellpadding="0" cellspacing="1" width="780" class="Border" align="center"> 
    <tr> 
    <td class="Navsub" align="left" colspan="2">Reset Password</td> 
    </tr> 


    <cfif FORM.ACTION eq "CHANGE"> 
    <Cfif form.NEWPASS1 neq form.NEWPASS2> 
    <Cfset error = 1> 
    <Cfset message = "Your passwords did not match. Please retry"> 
    <Cfelse> 
     <cfquery name="update_password" datasource="#application.db#"> 
      update tbladmin set adminpass = '#form.newpass1#' where adminid = #session.adminid# 
    </cfquery> 
    <Cfset error = 0> 
    <cfset message = "Your password has been updated. You will be required to enter it the next time you login"> 
</Cfif> 

<cfoutput> 
    <form id="myForm" action="?#createuuid()#" method="post"> 
    <Cfif error neq ""> 
    <Tr> 
    <Td align="center" class="Error" colspan="2" bgcolor="##fb565d">#message#</Td> 
    </Tr> 
    </Cfif> 
    <tr> 
    <td align="right" class="Copy" valign="middle">New Password:</td> 
    <td align="left" class="Copy" valign="top"><input name="NEWPASS1" type="password" class="textblock" required="yes" message="Please enter your new password" id="myElement1" data-display="myDisplayElement1"><div class="left" id="myDisplayElement1"></div></td> 
    </tr> 
    <tr> 
    <td align="right" class="Copy" valign="middle">Confirm Password:</td> 
    <td align="left" class="Copy" valign="top"><input name="NEWPASS2" type="password" class="textblock" required="yes" message="Please re-enter your new password" id="myElement2" data-display="myDisplayElement2"><div class="left" id="myDisplayElement2">  </div></td> 
    </tr> 

    <tr> 
    <td>&nbsp;</td> 
    <td align="left"> 
    <input type="submit" name="Action" value="Change" class="submitbutton"></td> 
    </tr> 

    </form> 
    </cfoutput> 
    </table> 
    <script type="text/javascript" src="scripts/jquery-1.7.1.min.js"></script> 
    <script type="text/javascript" src="scripts/pStrength.jquery.js"></script> 
    <script> 
    $(document).ready(function(){ 

     $('#myForm').submit(function(){ 
      return false; 
     }); 

     $('#myElement1, #myElement2').pStrength({ 
      'changeBackground'   : false, 
      'onPasswordStrengthChanged' : function(passwordStrength, strengthPercentage) { 
       if ($(this).val()) { 
        $.fn.pStrength('changeBackground', this, passwordStrength); 
       } else { 
        $.fn.pStrength('resetStyle', this); 
       } 
       $('#' + $(this).data('display')).html('Your password strength is ' + strengthPercentage + '%'); 
      }, 
      'onValidatePassword': function(strengthPercentage) { 
       $('#' + $(this).data('display')).html(
        $('#' + $(this).data('display')).html() + ' Great, now you can continue to change your password!' 
       ); 

       $('#myForm').submit(function(){ 
        return true; 
       }); 
      } 
     }); 
    }); 
    </script> 
    <cfinclude template="footer.cfm"> 

Спасибо заранее

+3

Когда вы открываете инструменты отладки в своем браузере, возникают ли ошибки в консоли? –

+0

Привет! Я использую Firebug (Firefox Plugin), и ошибок нет, всего два предупреждения. 1- « Поля пароля, присутствующие на незащищенной (http: //) странице. Это риск безопасности, который позволяет украшать учетные данные пользователя». 2- «Поля пароля, присутствующие в форме с небезопасным действием (http: //). Это риск безопасности, который позволяет украшать учетные данные пользователя». – user3917244

+0

Когда я отправляю форму, которую Firefox дает мне всплывающее окно с вопросом, для какой учетной записи я хотел бы изменить пароль, я выбираю учетную запись, в которую я зарегистрирован, но тогда ничего не происходит. – user3917244

ответ

2

Потому что вы не вынимая другой представить событие, вы просто добавляется к нему.

Это не отменяет неверную версию возврата, которую вы определили ранее.

$('#myForm').submit(function(){ 
    return true; 
}); 

Вам необходимо либо удалить его

$('#myForm').off("submit").submit(function(){ 
    return true; 
}); 

или еще лучше, не назначить новую функцию, используйте булевы.

var isValid = false; 
$('#myForm').submit(function(){ 
    return isValid; 
}); 

и внутри проверок проверки установите его в true или false.

+0

Привет, Epascarello, теперь у меня проблема, когда форма отправляется, даже если мои значения недействительны. я удалил код, как вы сказали, и заменил его на «$ (« # myForm »). off (« submit »). submit (function() { return true; }); – user3917244

+0

не могли бы вы показать мне, как бы вы сделали второй вариант? Я не очень хорошо разбираюсь в javascript, потому что мой коллега обычно заботится об этом, сегодня больной, поэтому я застрял с ним – user3917244

Смежные вопросы