php - 使用javascript获取表单中最接近的元素

标签 php javascript

我在表单中有以下两个字段:

<input type="button" value="Rep" id="rep" name="rep" style="width:50px" onclick="addRep()" />
<input type="hidden" value="<?php echo $comment_id; ?>" />

我需要获取表单中隐藏字段的值。所以我想使用一些函数来调用按钮旁边的隐藏字段字段。

我需要专门获取那个隐藏字段,它出现在按下按钮之后。

我不能使用像 getElementByID 这样的方法,因为我生成了许多具有相同 ID 的隐藏字段和按钮。(我用 PHP 动态生成它们)。

理论上,我认为我可以获得按下按钮的上下文(在捕获其事件之后),然后使用一些函数来查找表单中的下一个元素。

但我不确定该怎么做!

最佳答案

考虑一下您的按钮和隐藏元素之间可能有另一个元素。例如:

<input type="button" value="Rep" id="rep" name="rep" style="width:50px" onclick="addRep()"/>
<input type="text" id="someText" value="whatever"/>
<input type="hidden" id="someButton" value="anything"/>

在这种情况下,您可以通过执行一些检查来定位“最接近”已识别按钮的隐藏输入元素:

var rootNode    = document.getElementById('rep'),
    currentNode = rootNode.nextSibling,
    closestHidden;

function check(node) {
  return node.nodeType === 1 && node.localName === 'input' && node.type === 'hidden'
};

do {
  if (check(currentNode)) {
    closestHidden = currentNode; break;
  }
} while (currentNode = currentNode.nextSibling);

alert(closestHidden.id);

关于php - 使用javascript获取表单中最接近的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427371/

相关文章:

php - 使用 PHP 获取 XSD 内容

php - 想要从多个类别中获取mysql中按类别分组的产品

javascript - 清除网站的存储持久性标志

javascript - 使用 Javascript 构建 Flask 应用程序

javascript - 带有 formData 的 Ajax 不会在 asp.net Controller 中绑定(bind) child 的对象数组

php - 显示多个mysql表的结果并排序

php - mysql SELECT * WHERE value = $row ['item' ]

php - 使用 session 和带有 PDO 的表单向 mySQL 添加行

javascript - 将值从 jQuery Modal 传递到最后一个输入框

javascript - 如何通过 div ID 读取动态文本框值并在另一个 jquery 中使用此 ID?