У меня проблема с Javascript, которая сводит меня с ума. Я пытаюсь подключить форму к функции конструктора. Он должен захватить значения полей ввода, а затем установить их равными свойствам в новом объекте Person.Javascript: попытка создать конструктор, который принимает форму ввода как аргументы
Проблема заключается в том, что при отправке оно устанавливает свойства равными пустым строкам, и я не могу понять, почему, хотя я знаю, что значения live обновляются при изменении.
Script
//will hold an array of people objects
var list = [];
//constructor that builds new people to add to address book
function Person(first, last, address, number, email) { //new person constructor
this.firstName = first;
this.lastName = last;
this.address = address;
this.number = number;
this.email = email;
};
// When the submit button is clicked, create a new person and add the values of
// the form fields to the properties of the object
$("#addform").submit(function (e) {
e.preventDefault();
var person = new Person($("input[name = 'fname']").val(),
$("input[name = 'lname']").val(),
$("input[name = 'email']").val(),
$("input[name = 'address']").val(),
$("input[name = 'phone']").val());
list.push(person);
console.log(list);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="addform">
<input type="text" name="fname" placeholder="First name">
<input type="text" name="lname" placeholder="Last name">
<input type="email" name="email" placeholder="email">
<input type="input" name="address" placeholder="address">
<input type="tel" name="phone" placeholder="phone number">
<button type="submit" id="submitbtn">Submit</button>
<button type="button" id="closebtn">Close</button>
</form>
'updateValue ($ (this), $ (this) .val());', эквивалентно '$ ($ (this)). Val ($ (this) .val()); 'не имеет никакого смысла. Он выполняет 'this.value = this.value', который ничего не меняет. – Bergi
Вы уверены, что добавляете слушателя 'submit' [после того, как dom готов] (https://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method-such-as-getelementbyid -на-найти-элемент)? У вашего фрагмента стека нет. – Bergi
Возможно, я ошибаюсь, но этот вид селектора может пытаться выбрать массив вместо объекта, и вы пытаетесь получить val массива вместо этого, это первый элемент – Kejt