循环内的javascript函数不起作用

标签 javascript php codeigniter

我正在显示在线用户。当我单击其中一个用户时,相应的用户应显示在下面的文本框中。我为此使用了 javascript,但它只占用了第一个用户。当我单击第二个用户时,第一个用户显示在下面的文本框中。为什么只取第一个数组?

<?php
    foreach($query as $row)
    {
    ?>
        <input type="text" name="user" id="user" value="<?php echo $row->users;?> onclick="select_online()">
<?php
    }
    ?>
    <script>

    function select_online()
    {
        var user=document.getElementById("user").value;
        document.getElementById("usersonline").value=user;
    }
    </script>


Name:<input type="text" name="usersonline" id="usersonline">

最佳答案

首先,对许多元素使用相同的 id 是错误的。您应该为生成的输入制作不同的 id 属性。

其次,您应该使用this 来获取当前元素的值:

function select_online()
{
    var user=this.value;
    document.getElementById("usersonline").value=user;
}

document.getElementById("user") 语句将始终选择 id 属性等于“user”的元素,并且始终相同。很可能,这不是您想要的。如果我没理解错的话,你想获得被点击元素的 value,所以正如我之前提到的,你可以使用 this 表达式来实现它,它指向当前被点击的元素元素。

关于循环内的javascript函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920089/

相关文章:

php - 1an1 mysql ip地址位置

php - Codeigniter 单元测试模型

javascript - CSS 两个最小高度值,以较大者为准

javascript - 使用 jquery 包装

PHP登录-使用SQL语句检测用户类型

php - 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

php - 如何从 CodeIgniter 中的模型加载助手?

php - JOIN 语句中的 CodeIgniter ActiveRecord 字段名称

javascript - 检查图像加载失败

javascript - 谷歌驱动器 API v3 javascript : moving files