【发布时间】:2019-12-03 12:08:21
【问题描述】:
我有这种 JS,女巫收集数据并推动改变。
var dataArray = [];
$(function(){
$(document).on('change', 'input', function(){
var hid0 = $(this).data("hidden_val0");
var hid1 = $(this).data("hidden_val1");
var hid2 = $(this).data("hidden_val2");
dataArray.push([hid0, hid1, hid2])
});
});
$('.something_here').bind('click', function (event) {
event.preventDefault();
$.post('/do/it',
{
send_array: dataArray,
},
function (response) {
location.reload();
}
);
问题是它看不到目标,我认为?可能是我不应该使用$(this),因为他根本没有得到正确的值。
这是我正在使用的 HTML:
<input autocomplete="off" id="add_109_01000340001001001_cad" name="add_109_01000340001001001[cad]" hidden_val0="hidden_val0" type="hidden" value="01000340001001001">
<input autocomplete="off" hidden_val1="hidden_val1" id="add_109_01000340001001001_id" name="add_109_01000340001001001[id]" type="hidden" value="112000666">
<input autocomplete="off" autocomplete_key="add_109" hidden_val2="hidden_val2" id="add_109_01000340001001001" name="add_109_01000340001001001" onkeyup="fillFlatNumber(this)" size="3" style="height: 10px" type="text" value="1" class="ac_input">
现在我得到了这个,而不是里面的值:
[undefined, undefined, undefined]
如果有人这么好心并且可以帮助我。我将感激不尽。
【问题讨论】:
-
数据属性应以
data-为前缀 -
另外,
$(this)仅指一个输入框(您输入的那个) -
嘿!谢谢你。我理解你。你知道如何正确使用它吗?
-
你可以用
$(this).attr("hidden_val0");代替$(this).data("hidden_val0"); -
@NiravJoshi 谢谢你的回答,但我面临同样的问题:(。
标签: javascript jquery html arrays