简体   繁体   English

如何在 Lightning Web 组件中使用 onkeypress?

[英]How to use onkeypress in Lightning web components?

I have to restrict a input field to accept only numbers.我必须限制输入字段只接受数字。 We are not using "lightning-input".我们没有使用“闪电输入”。 How to use below js function in Lightning web component?如何在 Lightning Web 组件中使用以下 js 功能?

function isNumber(evt) {
        var iKeyCode = (evt.which) ? evt.which : evt.keyCode
        if (iKeyCode != 46 && iKeyCode > 31 && (iKeyCode < 48 || iKeyCode > 57))
            return false;     

return true;返回真; } }

See below:见下文:

.html file .html 文件

<lightning-card>
    <div class="slds-m-around_medium">
        <input type="number" onkeypress={handleKeyPress} pattern="[0-9]" class="slds-input" />
    </div>
</lightning-card>

.js file .js 文件

handleKeyPress(event) {
    let input_number = event.target.value;
    console.log('Number: '+input_number); 
}    

Results/output结果/输出结果/输出

I believe it allows "e" & "k" as valid numbers,我相信它允许“e”和“k”作为有效数字,

here's what I did这是我所做的

.html file .html 文件

<input class="numfield" onkeydown={onlyNumericAllowed} type="number" >

.js file .js 文件

onlyNumericAllowed(event) {
    if(event.keyCode === 69){
        event.preventDefault();
    }
    const value = event.target.value;
    console.log(event.charCode);
    if (value && (!/^[0-9]+$/.test(value) || event.keyCode == 0)) {
        this.template.querySelector('.numfield').value = value.replace(/\D/g, '');
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM