在输入字段中使用子字符串

时间:2014-12-15 19:01:31

标签: javascript

我正在使用一个ID扫描程序作为键盘输入,我想要一个输入字段来监听值和子字符串(或切片)输出不必要的额外值。

目前,ID扫描器会格式化如下数字:; 708089113 = 0184?

我想只抓708089113.我想删除分号和3之后的所有内容。

我只是不确定如何自动执行此操作。在提交之前,剥离的值应出现在字段中。

使用Javascript:

var suid = document.getElementById("SUID").value;
var stripSUID = suid.substring(1,10); 

document.getElementById("SUID").value = stripSUID;

HTML:

<input name="SUID" id="SUID" type="text" value="">

JSFiddle Link

2 个答案:

答案 0 :(得分:4)

您可以使用jQuery

HTML:

<input name="suid" id="suid" type="text" value="">

JavaScript的:

$(function() {
    $('#suid').change(function() {
        var suid = $(this).val();
        var stripSUID = suid.split('=');
        var stringLength = stripSUID[0].length;
        var returnValue = stripSUID[0].substr(1, stringLength);

        $(this).val(returnValue);
    });
});

jsFiddle更新:http://jsfiddle.net/jhjr288o/4/

答案 1 :(得分:2)

所以你要问如何收听 更改<input>

var elm = document.getElementById('SUID');

elm.addEventListener('change', function (e) {
    var s = this.value, i = s.indexOf('=');
    if (i !== -1) {
        s = s.slice(1, i);
        this.value = s;
    }
});

DEMO

当元素失去焦点时,更改事件将触发 输入事件每次oldvalue !== newvalue(即每个键入的字符)都会触发


另请注意,此代码必须在元素存在后运行,即等待 Window的加载事件