我有一个多步骤表单,它依赖于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小提琴。
我很想知道我做错了什么。
答案 0 :(得分:0)
两件事:
document.getElementById("next")
返回undefined。没有ID为next
的元素。您可以通过向按钮添加id="next"
来解决此问题。$('#next')
代替.getElementById()
方法。而且,如果您使用的是jQuery,如果您不想更改标记,也可以选择$('[name=next]')
按钮。附加事件处理程序的完整代码可以写为:$('[name=next]').click(checkEmail);