У меня есть две формы на моей странице, которые очень похожи.HTMLInputElement не имеет метода 'parent'
Я делаю простую проверку в jquery, чтобы проверить, что каждое поле имеет значение перед использованием ajax для отправки данных обработчику php, который использует данные.
Из-за сходства между формами, я не могу знать, какая форма была отправлена, так что я думал, что я стараюсь дифференцировать с помощью идентификатора на форму контейнера DIV
<div name="contactform2" class="form">
<div width="100%" class="con2">
<div class="lable">
<label for="first_name">First Name *</label>
</div>
<input type="text" name="first_name" class="span4">
<div class="lable">
<label for="email">Email Address *</label>
</div>
<input type="text" name="email" class="span4">
<div class="lable">
<label for="telephone">Contact Number *</label>
</div>
<input type="text" name="telephone" class="span4">
<div class="lable">
<label for="comments">Message *</label>
</div>
<textarea name="comments" rows="8" class="span4"></textarea>
<input type="submit" value="Submit" class="btn btn-success">
</div>
</div>
Единственное отличие между формами, действительно, состоит в том, что в нем есть <select>
, а другой нет.
Моего JQuery выглядит следующим образом:
$('input[type=submit]').click(function() {
var parentname = this.parent('div').attr('name');
console.log('Form used: ' + parentname);
var fname = 0,
email = 0,
tel = 0;
comm = 0;
// Validate data
});
Я думаю, может быть, я получил мой селектор здесь не так, как я обычно выбираю по ид/классу/тэг, так что я даже не уверен, что это действует.
Может ли кто-нибудь предложить альтернативу?
Даже если вы переключите 'this' на' $ (this) ', вы не получите нужный результат, потому что родительский' div' кнопки отправки не имеет атрибута имени. Атрибуты имени не предназначены для использования в 'div', они предназначены для форм и элементов ввода. Говоря об этом, ваша форма должна быть обернута элементом '
@ahren, true. Специально потому, что мы не можем видеть, где находится элемент '