我的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必须是唯一的。

关于javascript - 使用jQuery从HTML输入获取正确的值的麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28096729/

10-12 00:14
查看更多