Проверка электронной почты JavaScript с использованием метода getElementById - PullRequest
0 голосов
/ 25 марта 2011

для проверки электронной почты У меня есть два поля ввода:

<input class="inputbox" type="text" name="data[subscriber][email]" id="field_email" size="40" value="'.$this->escape(@$this->subscriber->email).'"/>

<input class="inputbox" type="text" name="data[subscriber][retype_email]" id="field_retype_email" size="40" value="" onblur="confirm_email()" />

имя полей ввода было другим (input1_name, input2_name), и у меня был рабочий скрипт:

<script type = "text/javascript">
function confirm_email() {
email = document.adminForm.input1_name.value;
re_email = document.adminForm.input2_name.value;
if ( email != re_email ) {
alert ("ERROR: El correo electronico no coincide. Escribe tu correo electronico nuevamente")
document.adminForm.input1_name.value = "";
document.adminForm.input2_name.value = "";
document.adminForm.input1_name.focus();
}
else {}
}
</script>

НО мне НУЖНО получить доступ к элементу по id, потому что элемент ввода должен быть отформатирован в скобках (это не работает в javascript).И поэтому я вывел следующий скрипт:

<script type="text/javascript">
function confirm_email(){
    var email = document.getElementById('field_email');
    var re_email = document.getElementById('field_retype_email');
    if( email != re_email )
        alert("ERROR: El correo electronico no coincide. Escribe tu correo electronico nuevamente")
        document.getElementById('field_email').value = "";
        document.getElementById('field_retype_email') = "";
        document.getElementById('field_email').focus();
    else {} 
}
</script>

ЭТО НЕ РАБОТАЕТ

Если я использую только эту часть скрипта, он работает:

<script type="text/javascript">
    function confirm_email(){
        var email = document.getElementById('field_email');
        var re_email = document.getElementById('field_retype_email');
        if( email != re_email )
            alert("ERROR: El correo electronico no coincide. Escribe tu correo electronico nuevamente")
            else {} 
    }
    </script>

, которыйозначает, что эти строки неверны:

        document.getElementById('field_email').value = "";
        document.getElementById('field_retype_email') = "";
        document.getElementById('field_email').focus();

, но я хочу, чтобы элементы ввода были сброшены, а первый элемент ввода был в фокусе (получите эффект, который я получил, когда использовал первый фрагмент кодаэто сработало).

Как я могу сделать это с помощью метода getElementById?

Thanx

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Вам не хватает скобок, а некоторых .value:

<script type="text/javascript">
function confirm_email(){
    var email = document.getElementById('field_email').value;
    var re_email = document.getElementById('field_retype_email').value;
    if( email != re_email ) {    //  <-- here
        alert("ERROR: El correo electronico no coincide. Escribe tu correo electronico nuevamente")
        document.getElementById('field_email').value = "";
        document.getElementById('field_retype_email').value = "";
        document.getElementById('field_email').focus();
    }    // <-- and here
    else {} 
}
</script>
1 голос
/ 25 марта 2011

В вашем скрипте отсутствуют некоторые атрибуты .value. Это работает для вас?

<script type="text/javascript">
function confirm_email(){
    var email = document.getElementById('field_email').value;
    var re_email = document.getElementById('field_retype_email').value;
    if( email != re_email ) {
        alert("ERROR: El correo electronico no coincide. Escribe tu correo electronico nuevamente")
        document.getElementById('field_email').value = "";
        document.getElementById('field_retype_email').value = "";
        document.getElementById('field_email').focus();
    }
    else {} 
}
</script>
...