1

我试图弄清楚如何使用 JavaScript 获取按钮的值。在 php 代码中有几个使用 while 语句生成的按钮,所以nameid对于所有按钮都是相同的。它们之间的唯一区别是价值。

我的部分php代码:

while($row = mysql_fetch_array($result))
     {
     echo "<tr>";
     echo "<td align=\"center\"><input type=\"button\" id=\"details\" name=\"details\" value=\"" . $row['mcn'] . "\" onClick=\"MCNdetails()\"></td>";
     echo "</tr>";
     }

我想要实现的是,当单击此按钮时,将显示带有此记录详细信息的 JavaScript 警报。

(仅供参考 - “Faker”是该表所属的表单名称。)

我的 JavaScript 代码:

function MCNdetails()
        {

        var buttonDetails = document.Faker.details;
        var buttonValue = buttonDetails.value;

        if (buttonValue === "2700-2057" )
            {
            alert ("Details are here");
            return;
            }
        else
            {
            alert ("No Dice " + buttonValue);
            return;
            }

        }

我有大约。至今300条记录。当我单击任何按钮时,我总是得到 else 语句。我确实尝试通过 id 获取元素,如下所示:

function MCNdetails()
        {

        var buttonDetails = document.getElementById("details");
        var buttonValue = buttonDetails.value;

        if (buttonValue === "2700-2057" )
            {
            alert ("Details are here");
            return;
            }
        else
            {
            alert ("No Dice " + buttonValue);
            return;
            }

        }

但这总是会返回第一个按钮的值,无论我点击了哪个按钮。

我已经做了一些谷歌搜索以及搜索这个站点,但我找不到生成按钮的相同场景。

任何帮助或指示将不胜感激。感谢您的时间 :)

4

2 回答 2

6

尝试类似的东西

<script type="text/javascript">
  function getVal(value)
  {

   alert(value);
  }
 </script>
 <input type="button" value="Add" onclick="getVal(this.value)">
于 2012-10-30T03:36:42.990 回答
4

请注意,对多个元素使用相同的 id 是无效的 html,尽管大多数(所有?)浏览器往往不会对此大惊小怪,它们仍然会非常愉快地显示页面。这就是为什么当您尝试使用document.getElementById("details")它时,总是给您第一个带有该 ID 的按钮 - 浏览器如何知道您的意思是哪个?

话虽如此,如果您this在单击时传入函数调用:

onClick=\"MCNdetails(this)\"

...这将使函数直接引用被单击的特定按钮。那么:

function MCNdetails(btn) {
    var buttonValue = btn.value;

    // etc
}

在这种情况下,您的按钮根本不需要 id。但是,如果您确实保留了 id,您应该找到一种使它们唯一的方法(例如,在每个的末尾附加一个序列号)。

于 2012-10-30T03:36:50.400 回答