javascript - 检查文本字段中的值是否已更改并发布。 JS。 rails

标签 javascript jquery ruby-on-rails ruby

所以我有一个页面,其中有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/

相关文章:

javascript - 如果textarea是动态的,如何从textarea中删除所有html标签?

javascript - 与 script 和prototype.js 冲突

ruby-on-rails - 如何检查字符串是否包含特定字符,以及它是否仅替换该位?

javascript - Sencha Touch 的 MessageBox 类中的西里尔字符

javascript - 我没有构建的系统中的 JSON 解析错误

javascript - 带有 jquery 多选插件的 Angular js

ruby-on-rails - Docker rails mongodb NoServerAvailable

ruby-on-rails - 如何找到本地 postgres 数据库的 URL 路径?

javascript - Pubnub javascript视频聊天摄像头和麦克风静音机制?

jQueryUI 对话框/日期选择器自动打开