【问题标题】:onfocus onblur issue javascript multiple instace of same fieldonfocus onblur 问题 javascript 同一字段的多个实例
【发布时间】:2012-07-29 19:39:05
【问题描述】:
<input type="text" rel="Credit card number" class="defaultColor" name="cc_num" id="txtCardNumber" runat="server" maxlength="20" onblur="cc_number_saved = this.value; this.value = this.value.replace(/[^\d]/g, '');" onfocus="if(this.value != cc_number_saved) this.value = cc_number_saved;"/>

我正在保存信用卡的价值并替换非数字字符 onblur 并将它们再次放在焦点上(基本上是空格和破折号)。如果有更多房间,该字段将被创建多次(我的意思是如果用户选择多个房间,我们将在不同容器中为每个房间填充信用卡字段。

目前,如果我在其他房间输入不同的信用卡信息,它会用第一个房间替换值,我如何为这个信用卡字段的每个房间创建不同的实例。 我已经在全局范围内声明了变量,所以它引起了我相信的问题。但不确定如何使用当前方法将每个生成的输入信用卡字段设为私有。

var cc_number_saved = "";

如果不清楚请告诉我。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    使用 jQuery 将值附加到表示相关输入的 DOM 元素。

    在输入上有一个 id:

    <input id = 'input1' >
    

    然后您可以为附加到输入的数据字段分配一个值,如下所示:

    $('#input1').on('blur', function(){
        $(this).data('temp', $(this).val();
    }
    

    ...无论您如何处理输入的值,都保留该值。

    然后像这样再次检索它:

    var originalVal = $('#input1').data('temp');
    

    然后像这样将操纵值应用回输入:

    var newVal = someFunction(originalVal);
    $('#input1').val(newVal);
    

    ...或其他。

    【讨论】:

    • 谢谢!输入是动态创建的,所以 ID 是不同的,我已经为所有字段实现了你的想法,它工作正常!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多