我的页面上有两个非常相似的表单。
我在jquery中进行简单验证,在使用ajax将数据发送到使用数据的php处理程序之前检查每个字段是否有值。
由于表单之间的相似之处,我无法知道提交了哪个表单,所以我想我会尝试通过表单容器div上的id来区分
<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
});
我想也许我的选择器错了,因为我通常选择id / class / tagname,所以我甚至不确定它是否有效。
有人可以提出替代方案吗?
答案 0 :(得分:8)
.parent()
是一个jQuery函数,你忘了将this
包裹在$()
中。
var parentname = $(this).parent('div').attr('name');
console.log('Form used: ' + parentname);
你应该看一下.closest()
。