如何获取点击字段的信息

时间:2013-11-21 11:24:53

标签: php jquery

我正在为文本框和下拉框创建循环...

foreach ($users as $user)
{
 echo '<div class="row">';
 echo '<input type="hidden" value="'.$user['uid'].'" id="userid"/>';
 echo '<input type="text" value="'.$user['username'].'" disabled id="username"/>';
 echo '<select name="site" id="site"> <option>Site A</option><option>Site B</option></select>';
 echo '<select name="role" id="role">';
foreach ($roles as $role)
    echo '<option>'.$role.'</option>';
    echo '</select>';
    echo '<input type="button" name="Change" id="Change" value="Change" onclick="getClick()">';
}

我的jquery是

function getClick()
{
     var a=$("#username").val();
     alert(a);
}

现在问题是,当我点击任何更改按钮时,我只能获得第一行的用户名...我怎样才能获得每行的用户名... < / p>

2 个答案:

答案 0 :(得分:2)

修改下面给出的代码:

echo '<input type="text" value="'.$user['username'].'" disabled 
     id="username"'.$user['uid'].'"/>';

echo '<input type="button" name="Change" id="Change" value="Change"
      onclick="getClick("'.$user['uid'].'")">';

的Javascript:

function getClick(userid)
{
    var a=$("#username"+userid).val();
    alert(a);
}

答案 1 :(得分:1)

您应该使用类值而不是id,因为元素是在循环中创建的 - 元素的id在文档中必须是唯一的。

所以将所有id更改为class

'<input type="hidden" value="'.$user['uid'].'" class="userid"/>'

还使用jQuery事件处理程序而不是内联的

'<input type="button" name="Change" value="Change" class="change">'

jQuery(function(){
    $('.change').click(function(){
        var $this = $(this), $row = $this.closest('.row');
        var a=$row.find(".username").val();
        alert(a);
    })
})