【发布时间】:2014-11-29 11:39:22
【问题描述】:
请在 jsfiddle 上查看以下代码:
http://jsfiddle.net/j9b0uL6m/3/
var message1 = "E-mail has to contain @.";
var message2 = "You have to write your name.";
var message3 = "The password is 123456.";
var mail = $(this).parent().find(".mail").val();
var jmeno = $(this).parent().find(".jmeno").val();
var heslo = $(this).parent().find(".heslo").val();
var hint = "Those errors appeared:";
if (mail.indexOf("@") < 0) {
hint += "\n\n" + message1;
}
if (jmeno === "") {
hint += "\n\n" + message2;
}
if (heslo === "123456") {
hint += "\n\n" + message3;
}
alert(hint);
问题是由于某种原因,只有当 div 包含带有类邮件的输入时才会显示警报。在其他情况下,它不起作用。你能帮帮我吗?
【问题讨论】:
-
您的控制台中有错误... jsfiddle.net/arunpjohny/j9b0uL6m/5 - 在第一组中有
.mail元素,因此mail将是undefined所以调用mail.indexOf("@")将引发错误 -
如果没有类
mail的元素,那么值mail将是未定义的,您将在undefined上调用indexOf。在控制台中,您会看到类似Cannot read property 'indexOf' of undefined的内容 -
var mail = $(this).parent().find(".mail").val(); -
@ArunPJohny 我去过那里,不幸的是这个解决方案会导致错误的条件结果。如果没有 类邮件,我不想得到与空邮件相同的结果。
-
@BořekVavřík 在这种情况下是jsfiddle.net/arunpjohny/j9b0uL6m/6
标签: jquery forms if-statement conditional-statements