如何在jquery中获取数组的clicked输入元素的值

时间:2017-02-03 06:49:38

标签: php jquery onclick

我想将表格中点击的数组项的值发送到标题的输入元素。

在下面的情况下,我总是得到第一行的价值。如何获得确切的点击线的值?

以下是我正在尝试做的代码:

<?php

if(isset($_SESSION['wo_arr'])) {
    if(is_array($_SESSION['wo_arr'])) {
        foreach($_SESSION['wo_arr'] as $key => $value)  {
            foreach($value as $k => $v ) {
                $wo_arr[$key][$k] = $v ;
            }
        }
    }
    $num = count($wo_arr['wo_no']);
} else {
    $num = 5 ;
}

?>

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>

    function selectWork() {

        $(document).ready(function () {

            var data = $(this).find('.wono_arr').val() ;            
            $('#wo_no').val(data);

        });     
    }

</script>
</head>
<body>

    <FORM>

        <p>
            work order # <INPUT size=10 TYPE="text" id=wo_no NAME="wo_no">
        </p>

        <table>

        <?php
            for($i = 0 ; $i < $num ; $i++) {
        ?>

            <TR>
                <TD><INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]"
                    value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>"
                    onclick="selectWork()">
                </TD>
            </TR>

        <?php
            }
        ?>
        </TABLE>

    </FORM>

</body>

</html>

感谢。

2 个答案:

答案 0 :(得分:0)

this放在函数调用上:

<强> HTML

<INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]" value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>" onclick="selectWork(this)">

并将其用于:

<强> JS

function selectWork(e) {        
   var data = $(e).val();            
   $('#wo_no').val(data);
}

建议将click处理程序附加到输入元素,而不是像这样使用内联javascript:

<强> HTML

<INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]" value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>">

<强> JS

$('table').on('click','.wono_arr', function () {
   var data = $(this).val();            
   $('#wo_no').val(data);
});

答案 1 :(得分:0)

使用公共类名定义每个元素,并为该类定义单击函数,如下所示。

//JS
<script>
$(document).ready(function(){
   $(".wono_arr").click(function(){
        alert("Value"+$(this).val());
        alert($(this).attr('id')+"clicked");
   });
});
</script>
//In your html
<table>
<?php
    for($i = 0 ; $i < $num ; $i++) {
?>
    <tr>
        <td><input type="text" class="wono_arr" id="<?php echo $wo_arr['wo_no'][$i]; ?>" name="wo_arr[wo_no][]"
                value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>"
            />
        </td>
    </tr>

<?php
    }
?>
</table>

对于多个HTML元素,您可以定义相同的类名,然后使用JQuery定义方法,如果使用该类,则该方法适用于所有HTML元素。调用方法时,使用 this 关键字获取当前点击元素的值。