我的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/