使用 jquery 从 html 输入中获取正确值时出现问题


Trouble with getting right value from html input using jquery

我的PHP文件末尾有这个:

<script type="text/javascript>"
$("#id").on("click", "#otherId", function(e)
{
  var html = "<input class='id' type='text' size='5' />";
  var row = $(this).closest("#addoid").html(html);
  row.find("input").focus();
  row.find('input').change( function(e)
  {
    var value = $(this).val();
    var fid = $("input#idName").val();
    $.ajax({
      type: "POST",
      url: "page.php",
      data: { entryId: fid, val: value }
    })
    .done(function( msg ) { 
      alter("data: " + msg);
    });
   });
</script>
</body>

html是这样的:

<div id="id">
  <div id="otherId">
    <input id="idName" type="hidden" value="1234" />
    <button type="button" id="otherId">Add</button>
  </div>
  <div id="otherId">
    <input id="idName" type="hidden" value="1235" />
    <button type="button" id="otherId">Add</button>
  </div>
  <div id="otherId">
    <input id="idName" type="hidden" value="1236" />
    <button type="button" id="otherId">Add</button>
  </div>
</div>

我省略了前面的jquery代码,但基本上,当按下添加按钮时,它会更改为输入字段,如果用户在输入字段中输入id,它将显示一个链接(模糊)或返回添加按钮,如果未输入任何内容。

然而,到目前为止它正在工作

var fid = $("input#idName").val();

正在获取下一个 ID(而不是 1234,而是发布 1235)。

我是jquery的新手。我已经四处寻找并尝试了几种不同的东西,但我一无所获。

谢谢。


加法

为了更清楚地说明这一点,我有一个表,它正在填充一个foreach循环(使用 php),它正在从数据库中提取记录。

看起来像这样:

<div id="list">
<table>
  <?php foreach ($data as $value):?>
  <tr>
  <td>
    <div class="row">
      <button class="add">Add</button>
      <input class="hiddenId" type="hidden" name="hiddenName" value="<?php echo $value['id']?>" />
    </div>
  </td>
  </tr>
  <?php endforeach?>
</table>
</div>

就像我之前解释的那样,当单击"添加"按钮时,它会变成一个输入字段。

在更改(输入字段)时,我需要 ajax 发送包含两个输入字段值的请求。

遇到的问题是我无法获得隐藏输入的正确值。 jQuery正在从另一行而不是正确的行中获取值。

我似乎无法弄清楚这一点,并且诚实地尝试了许多不同的方法,包括一些可能被认为是非常规的方法。

感谢您的任何帮助。

请先重命名输入 ID,因为 ID 必须是唯一的。