繁体   English   中英

从同一页面上具有相同类的espcific表单获取提交

[英]get the submit from a form espcific in same page with same class

我试图从特定于jquery的表单中获取提交,并警告包含值id的字段类型hiden的值; 我尝试了这个。 但他获得的id值却始终相同。 这是代码jQuery

var form = $(".form");

form.submit(function() {
    alert(form.find('#id').val());
    return false;
});

这是代码html

<div>
    <form  action="" method="post" class="form">
        <input type="hidden" id="id" name="id" value="1" />
        <button class="submit"  type="submit" name="enviar" id="enviar">Enviar</button>
    </form>
<div/>
<div>
    <form  action="" method="post" class="form">
        <input type="hidden" id="id" name="id" value="2" />
        <button class="submit"  type="submit" name="enviar" id="enviar">Enviar</button>
    </form>
<div/>
<div>
    <form  action="" method="post" class="form">
        <input type="hidden" id="id" name="id" value="3" />
        <button class="submit"  type="submit" name="enviar" id="enviar">Enviar</button>
    </form>
<div/>

我错了

id="id"

无论位于何处,ID都应该是唯一的。 例如,尝试将其更改为id="id1"id="id2"

您走在正确的轨道上。 但是您需要使用$(this)而不是form

它之前警告第一个值的原因是因为当您执行$('.form').val()时,即使有多个元素,它也会默认获得第一个值。 但是,当您使用$(this) ,它将获得已提交的特定.form

最后,避免对多个元素使用相同的ID。 您可以使用类之类的替代方法。 请参阅为什么具有多个具有相同id属性的HTML元素是一件坏事?

 var form = $(".form"); form.submit(function() { console.log($(this).find('.my-class').val()); return false; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> <div> <form action="" method="post" class="form"> <input type="hidden" class="my-class" name="id" value="1" /> <button class="submit" type="submit" name="enviar" id="enviar">Enviar</button> </form> <div/> <div> <form action="" method="post" class="form"> <input type="hidden" class="my-class" name="id" value="2" /> <button class="submit" type="submit" name="enviar" id="enviar">Enviar</button> </form> <div/> <div> <form action="" method="post" class="form"> <input type="hidden" class="my-class" name="id" value="3" /> <button class="submit" type="submit" name="enviar" id="enviar">Enviar</button> </form> <div/> 

第一件事-不要创建具有相同ID值的多个DOM元素。 ID值必须唯一。

更改

form.find('#id').val()

$(this).find('input').val()$(this).find('#id').val()

当然,对每个元素使用唯一的ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM