使用getElementById方法验证JavaScript电子邮件

时间:2011-03-25 03:05:50

标签: javascript email-validation getelementbyid

用于电子邮件验证我有以下两个输入字段:

<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方法执行此操作?

感谢名单

2 个答案:

答案 0 :(得分:2)

你错过了一些大括号,还有一些.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 :(得分:1)

您的脚本中缺少一些.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>