Javascript if语句不触发'true'语句

时间:2014-08-21 09:29:21

标签: javascript jquery html forms

我有一个多步骤表单,它依赖于javascript来确定步骤2中显示的选项。

if语句应该取电子邮件字段的值,并且如果域是@ vip.co.uk则应显示特定选项(div元素),如果使用任何其他域,则应显示一组常规选项(div元素)

表单正常运行,但我似乎看到了所有电子邮件域的一般选项,if语句似乎没有效果。

以下是If声明:

function checkEmail(){
    var email = document.getElementById('email').value;
    var idx = email.lastIndexOf('@');
    if (idx > -1 && email.slice(idx + 1) === 'vip.co.uk'){
        document.getElementById('special').style.display = 'block';
        document.getElementById('general').style.display = 'none';
    }
}

document.getElementById("next").addEventListener("click", checkEmail);

考虑到代码的数量,我在http://jsfiddle.net/zsasvoo4/创建了一个完整形式的JS小提琴。

我很想知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

两件事:

  1. 打开调试控制台,您将看到document.getElementById("next")返回undefined。没有ID为next的元素。您可以通过向按钮添加id="next"来解决此问题。
  2. 如果您使用的是jQuery,则更常见的是使用$('#next')代替.getElementById()方法。而且,如果您使用的是jQuery,如果您不想更改标记,也可以选择$('[name=next]')按钮。附加事件处理程序的完整代码可以写为:$('[name=next]').click(checkEmail);