Я создаю простую гостевую книгу, задание, в котором нам специально предлагается использовать jQuery для проверки пустых полей. Я много часов искал в Интернете, чтобы попытаться выяснить, почему моя проверка не работает, но я не сталкивался с каким-либо рабочим решением.
Однако, когда я использую приложение для отладки Chrome, я получаю:
Uncaught SyntaxError: Unexpected end of input
- и красная точка отображается в окне консоли прямо перед моей декларацией doctype.
Может ли это иметь какое-либо отношение к валидации, не работающей? Ниже приведены соответствующие фрагменты кода.
Форма:
<form id="aForm" method="post" action="">
<ol>
<li>
<label for="name">Name:</label>
<input type="text" name="name" placeholder="Type your name...">
</li>
<li>
<label for="comment"></label>
<br>Message: <br><textarea maxlength="100" name="comment"
placeholder="Share a thought..." rows=6 cols=33></textarea>
</li>
<li>
<input type="submit" name="submit" value="Submit your message!">
</li>
</ol>
</form>
С проверкой в конце документа (сценарии исходят из доверенного плагина):
<script src="js/jquery.js"></script>
<script src="js/validation.js"></script>
<script>
$(document).ready(function() {
$.validator.setDefaults({
submitHandler: function() { alert("Submitted!"); }
});
$("#aForm").validate({
rules: {
name: { required: true },
comment: { required: true }
},
messages: {
name: "Please enter your name",
email: "Please enter a comment"
}
});
</script>
вы не закрываете $("#aForm").validate(
открытый в $("#aForm").validate(
Код должен быть:
<script>
$(document).ready(function() {
$.validator.setDefaults({
submitHandler: function() { alert("Submitted!"); }
});
$("#aForm").validate({
rules: {
name: { required: true },
comment: { required: true }
},
messages: {
name: "Please enter your name",
email: "Please enter a comment"
}); //<= added
});
</script>
Вам не хватает окончательного закрытия }); Пытаться:
<script>
$(document).ready(function() {
$.validator.setDefaults({
submitHandler: function() { alert("Submitted!"); }
});
$("#aForm").validate({
rules: {
name: { required: true },
comment: { required: true }
},
messages: {
name: "Please enter your name",
email: "Please enter a comment"
}
});
});
</script>
Проверь это:
<script>
$(document).ready(function() {
$.validator.setDefaults({
submitHandler: function() { alert("Submitted!"); }
});
$("#aForm").validate({
rules: {
name: { required: true },
comment: { required: true }
},
messages: {
name: "Please enter your name",
comment: "Please enter a comment" // email in original code
}
}); // missing in original code
});
Я не знаю, если это проблема, но попробуйте изменить это
email: "Please enter a comment"
к этому
comment: "Please enter a comment"
потому что нет текстового поля электронной почты или ввода.