【问题标题】:Empty array when textfield value changes in JqueryJquery中文本字段值更改时的空数组
【发布时间】:2018-11-21 03:09:56
【问题描述】:

如果我第一次输入一个字符串,它会很完美。但是,如果我尝试更改它,它将不起作用,因为 nameArray 正在将所有值添加到 index.html 中。我尝试用 namArray = [ ]; 清空数组在 $("#Code").val([ ]); 之后但是在 Name 文本字段的每次更改之后,它都会使 nameArray 长度为 1 并且我没有得到我的结果。这是我的代码。

var nameArray = [];
var count;
var i;    

$(document).ready(function () {

    $("#Name").on('input', function () {                                                    

        $("#Code").val([]);


        var getName = $("#Name").val();                       

        nameArray.push(getName);                

        if (nameArray.length >= 3) {
            count = 3;
        }
        else if (nameArray.length <= 3) {
            count = nameArray.length;
        }

        for (i = 0; i <= count; i++) {
            $('#Code').val(nameArray[i]);
        }

    });   

});

如果文本字段发生更改,我只想清除 nameArray,以便它可以从文本字段中获取新更改的字符串并由此工作。

【问题讨论】:

  • 所以清除数组。你没有那样做。 $("#Code").val([]);nameArray 的影响为零
  • 你到底想什么时候清空数组?
  • 我想在名称文本字段值更改后清除数组。
  • 如何更改?您正在捕获用户在值中添加或删除可显示字符时将发生的输入事件。你想在什么时候彻底清除它?
  • 您是否只是希望代码匹配名称的前三个字符?

标签: jquery arrays textfield


【解决方案1】:

将代码设置为名称的前 4 个字符。

$(document).ready(function () {
    $("#Name").on('input', function () {
        $("#Code").val(this.value.substring(0, 4));
    });   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="Name" placeholder="Name">
<input type="text" id="Code" placeholder="Code">

【讨论】:

  • 按预期工作。对不起,我不知道它可以这么容易地完成。谢谢你。
  • @SaifAyon 没问题。我只是想确保我明白你想要什么,:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多