Невозможно прочитать настройки свойств «неопределенных» при нажатии кнопки «Отправить»

Я не знаю, почему я получил эту ошибку, когда я изменил код на php (из html). когда расширение файла html, код работает нормально

<?php?> <html lang="en"> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="css/manual.css"> <!-- Optional theme --> <!-- Latest compiled and minified JavaScript --> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <!-- Latest compiled and minified JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js"></script> <title>Register</title> </head> <body> <nav class="navbar navbar-default" id="navBar"> </nav> <div class="full"> <div class="col-xs-12"> <!--Side Bar--> <div class="col-xs-3" id="navSide"> </div> <div class="col-xs-6" id="signUpForm"> <h1>Register Page</h1> <form role="form" id="signUpForm"> <div class="form-group"> <div class="form-inline spacer-12"> <input type="text" class="form-control" name="userFirstname" placeholder="First Name"> <input type="text" class="form-control" name="userLastName" placeholder="Last Name"> </div> </div> <div class="form-group "> <input type="text" class="form-control" name="userEmail" placeholder="Email"> </div> <div class="form-group "> <input type="password" class="form-control" name="userPassword" placeholder="Password"> </div> <div class="form-group "> <input type="password" class="form-control" name="confirmPassword" placeholder="Password"> </div> <div class="form-group "> <label> Birthday* </label> <input type="date" class="form-control" name="userBirthday" placeholder="Birthday"> </div> <input type="submit" class="btn btn-info spacer-12" style="clear:both" > </form> </div> </div> </div> <script src="js/startup.js"></script> <script src="js/signup.js"></script> </body> </html> <?php?> 

то это мой код проверки jquery

 $(document).ready(function(){ $('#signUpForm').validate({ errorElement: "span", errorClass: "help-block", rules:{ userFirstName:{ required: true }, userLastName:{ required: true }, userEmail:{ required: true }, userPassword:{ required: true }, confirmPassword:{ required: true }, userBirthday:{ required: true } }, submitHandler: function (form) { // for demo alert('valid form submitted'); // for demo return false; // for demo }, highlight: function(element) { $(element).closest('.form-group').addClass('has-error').addClass('red-border'); }, unhighlight: function(element) { $(element).closest('.form-group').removeClass('has-error').addClass('has-success').removeClass('red-border'); } }); }); 

Этот код вызывает ошибку, когда я нажимаю кнопку отправки (JQuery Validate Uncaught TypeError: не удается прочитать свойства «настройки» неопределенного значения). Но ошибка является временной и исчезнет через некоторое время.

Вы определили два идентификатора с одинаковым именем, тогда как идентификатор должен быть уникальным.

 <div class="col-xs-6" id="signUpForm"> <form role="form" id="signUpForm"> 

Попробуйте удалить id из <div class="col-xs-6" id="signUpForm">

ЗАМЕЧАНИЕ: две вещи

1. Определите функцию JQuery

включить функцию jQuery!

 (function( $ ) { 

// Запуск скрипта

// endscript /

 })( jQuery ); 
  1. Измените идентификатор формы, потому что он конфликтует между идентификатором формы и идентификатором Div

<form role="form" id="signUpForm1"> // include 1 in previous form id

И поместите этот id в скрипт

  $('#signUpForm1').validate({ // put the Id in the script 

Надеемся, что ваша задача будет успешной.

Чтобы добавить небольшую деталь здесь, я столкнулся с той же проблемой с jQuery UI time picker, и это также было связано с тем, что идентификатор не уникален.

В моем случае это связано с тем, что я захватывал родительский элемент из шаблона – дублируя его для всплывающего окна. В результате содержимое окна имело дубликаты идентификаторов.

Моим обычным обходным решением для этого было заменить это:

 $('#foo').bar(); 

с этим:

 myPopupWindow.find('#foo').bar(); 

Это работает очень хорошо для большинства вещей, но не для выбора времени. Для этого я сделал это:

 myPopupWindow.find('#foo').attr('id', 'foo_' + someUniqueTag); myPopupWindow.find('#foo_' + someUniqueTag).timepicker(); 

где someUniqueTag является идентификатором записи, случайным числом или некоторой другой отдельной строкой. Это решило для меня это довольно хорошо.