使用jquery从html输入中获取正确值的麻烦

时间:2015-01-22 19:05:30

标签: javascript php jquery html

我的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代码删除了,但基本上,当按下Add按钮时,它会更改为输入字段,如果用户将id放入输入字段,它将显示一个链接(on blur)或如果没有输入任何内容,请返回添加按钮。

到目前为止它正在运作,但是

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

正在使用下一个ID(而不是1234,它是发布1235)。

我是jquery的新手。我四处搜寻并尝试了几种不同的东西,但我无处可去。

感谢。


ADDITION

为了使这个更清楚,我有一个用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从另一行获取值,而不是正确的行。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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