所以我有一个页面,其中有text_field
。问题是,当我按下submit
按钮时,他会发布整页(我的意思是页面上的每条记录)。要排除此问题,我需要检查 text_field
中的值是否已更改或已被删除。您有什么想法如何检查吗?
P.S 我在这个字段上有自动完成功能,所以当他更改text_field中的数字时,隐藏字段hidden_val0
将由数字填充(但这仅在您更改值而不是删除时它)。
其 HTML:
<input autocomplete="off" hidden_val0="hidden_val0" id="add_109_01000340001001002_id" name="add_109_01000340001001002[id]" type="hidden" value="111286507">
这是我正在使用的js代码:
var NewArr = new Array();
$('.something_here').bind('click', function () {
var id= $(this).attr('id');
collectID = $("[hidden_val0='hidden_val0'], [hidden_val1='hidden_val1'], [hidden_val2='hidden_val2']")
.map(function(_, it){
return [it.value] // Collecting 3 values witch we should pass
})
.get();
for (var i=0; i<collectID.length; i=i+3) {
NewArr.push(collectID.slice(i,i+3)); // Here we split values by 3
}
$.post('/do/it',
{
send_array: JSON.stringify(NewArr), // Pass them
id: id
},
function (response) {
location.reload();
}
);
});
其输出:
["01000340001001001", "", ""]
["01000340001001002", "", "2"]
["01000340001001003", "", "3A"]
["01000340001001004", "", "3"]
["01000340001001005", "", "5"]
["01000340001001006", "", "6"]
["01000340001001007", "", "7"]
HTML 的样子:
<input autocomplete="off" autocomplete_key="add_109" hidden_val1="hidden_val1" id="add_109_01000340001001002" name="add_109_01000340001001002" onkeyup="GetNumbers(this)" size="3" style="height: 10px" type="text" value="2" class="ac_input">
最佳答案
您可以使用如下内容:(此代码未经测试)
var dataArray = [];
$(function(){
$(document).on('change', 'input', function(){
var hid1 = $(this).data("hidden_val0");
var hid2 = $(this).data("hidden_val1");
var hid3 = $(this).data("hidden_val3");
dataArray.push([hid1, hid2, hid3])
});
});
$('.something_here').bind('click', function (event) {
event.preventDefault();
$.post('/do/it',
{
send_array: dataArray,
id: id
},
function (response) {
location.reload();
}
);
关于javascript - 检查文本字段中的值是否已更改并发布。 JS。 rails ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154819/