我认为一个简单的问题: - )
<form id="upload" method="post" name="form">
<input id="id<?php echo $a; ?>" class="id" name="id" type="text" value="<?php echo $id_submit; ?>" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>
源代码看起来像像这样:
表单1:
<form id="upload" method="post" name="form">
<input id="id1" class="id" name="id" type="text" value="12345" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>
表格2:
<form id="upload" method="post" name="form">
<input id="id2" class="id" name="id" type="text" value="65432" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>
点击save.jpg后,它调用我的jquery-function:
$(document).ready(function() {
$( "#upload" ).on("submit", function(e) {
e.preventDefault();
var id = $('.id').val();
…..
问题在于,当我点击表单2中的save.jpg时,它取值 12345 而不是 65432 。
我该如何解决?
答案 0 :(得分:2)
表单必须是唯一的
<form id="upload" method="post" name="form">
这就是为什么它使用目标id
获取dom结构中的第一个元素,更改第二个表单的id。
当你这样做时
var id = $('.id').val();
给定的类有多个元素。你可以试试这个
var id = $(this).find('.id').val();
快乐编码:)
答案 1 :(得分:1)
使用更广泛的选择器来定位两个表单,然后找到当前提交表单的ID:
$( "form" ).on("submit", function(e) {
e.preventDefault();
var id = $(this).find('.id').val();//"this" is the current form
答案 2 :(得分:0)
有效:
var id = $(this).('.id').val();
感谢您的帮助。