2014-01-10 1 views
0

Я хочу добавить checkPasswordMatch() через функцию JavaScript в нашем файле twig для 1-го 2-го совпадения пароля в регистрационной форме.html.twig Функция формы

Simple HTML FORM это работает, но в Twig Form это не работает. В простой форме добавить, как это: -

<div"> 
    <input type="password" id="txtNewPassword" /> 
</div> 
<div> 
    <input type="password" id="txtConfirmPassword" onKeyUp="checkPasswordMatch();" /> 
</div> 

Это работает отлично.

И Java Script: -

<script> 
    function checkPasswordMatch() { 
    var password = $("#txtNewPassword").val(); 
    var confirmPassword = $("#txtConfirmPassword").val(); 
    alert(password); 
    if (password != confirmPassword) 
    $("#divCheckPasswordMatch").html("Passwords do not match!"); 
    else 
    $("#divCheckPasswordMatch").html("Passwords match."); 
} 
</script> 

И это мой Twig файл, где я хочу эту функциональность дополнения: -

<label for="username"><strong>Password</strong> 
{{ form_widget(form.plainPassword.first,{'id':'txtNewPassword' }) }} 
</label> 
<label for="username"><strong>Confirm Password</strong> 
{{ form_widget(form.plainPassword.second,{'id':'txtConfirmPassword', 'onKeyUp' :'checkPasswordMatch()' }) }} 
</label> 

Любой один знаю, что, как я могу добавить эту OnKeyUp функцию этот тип веточек?

Спасибо!

ответ

0
$("#txtNewPassword, $txtConfirmPassword").on(function(event) { 
    var matchMsg = $("#txtNewPassword").val() == $("#txtConfirmPassword").val() 
        ? 'Passwords match.' 
        : 'Passwords do not match'; 
    $("#divCheckPasswordMatch").html(matchMsg); 
    }); 

Вы не должны действительно связывать функциональность JS в шаблонах ветви, но в ваших javascripts.
Код не проверен на всех частях, но должен показать вам эту идею.

Если этот код кажется странным, проверьте http://api.jquery.com/on/, чтобы понять события javascript и привязку лучше.

+0

Мне было все равно, о хороших или плохих практиках. В моей книге использование JQuery - худшая практика. Каждому свое. Тем не менее, я согласен, что было бы удобнее настроить обработчик событий проверки поля с помощью JavaScript, чтобы собрать все соответствующие коды в одном месте и стать независимыми от способа создания фактической формы. –

+0

Спасибо, Маркус. Я не хочу связывать функциональность JS в шаблонах ветви. Здесь только, к примеру. Но моя проблема решена. Я делал неправильно в этой части: - {{form_widget (form.plainPassword.second, {'id': 'txtConfirmPassword', 'onKeyUp': 'checkPasswordMatch()'})}}. Я могу удалить это и добавить новый {{form_widget (form.plainPassword.second, {'attr': {'id': 'txtConfirmPassword', 'onKeyUp': 'checkPasswordMatch()'}}}}}. то это работает нормально. – Sid

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