2

我的页面上有 2 个非常相似的表单。

在使用 ajax 将数据发送到使用数据的 php 处理程序之前,我在 jquery 中进行简单验证以检查每个字段是否具有值。

由于表单之间的相似之处,我无法知道提交了哪个表单,所以我想我会尝试通过表单容器 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 选择,所以我什至不确定它是否有效。

任何人都可以提出替代方案吗?

4

1 回答 1

8

.parent()是一个 jQuery 函数,你忘了把this.$()

var parentname = $(this).parent('div').attr('name');
console.log('Form used: ' + parentname);

你应该看看.closest()

于 2013-02-21T08:07:02.283 回答