我想将表格中点击的数组项的值发送到标题的输入元素。
在下面的情况下,我总是得到第一行的价值。如何获得确切的点击线的值?
以下是我正在尝试做的代码:
<?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>
感谢。
答案 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
关键字获取当前点击元素的值。