функция JavaScript не работает на всех браузерах - PullRequest
0 голосов
/ 19 ноября 2018

Я создал fnNumericDecimalOnly функцию javascript. код:

и использую его на моей странице jsp, где разрешены только числа и десятичные числа, не такие, как в коде ниже:

function fnNumericDecimalOnly(event) {    	
    if (event.keyCode < 45 || event.keyCode > 58) {
        event.returnValue = false;
    }
}
<div class="col-sm-4 col-lg-4">
    <div class="form-group has-feedback required-field-block">
        <label for="inTimeTxt" class="col-md-4 control-label">In Time</label>
        <div class="col-md-7">

            <input id="inTimeTxt" name="inTimeTxt" class="form-control" maxlength="5"
                   type="text" placeholder="00:00" value="" title="In Time" 
                   onkeypress="javascript:return fnNumericDecimalOnly(event)" 
                   data-tooltip="tooltip" data-placement="top" />(In hh:mm format)

            <span class="glyphicon form-control-feedback" id="inTimeTxtMessage"></span>
        </div>
        <div class="col-md-1"></div>
    </div>
</div>

работает только в Chrome, но не в Firefox. так что кто-нибудь может мне помочь, что я могу сделать, чтобы он работал для всех браузеров.

1 Ответ

0 голосов
/ 19 ноября 2018

https://www.w3schools.com/jsref/event_key_keycode.asp

Примечание. В Firefox свойство keyCode не работает с событием onkeypress (возвращает только 0).Для кросс-браузерного решения используйте свойство which вместе с keyCode, например:

var x = event.which || event.keyCode;  // Use either which or keyCode, depending on browser support

Это функция поиска в Google 5s ...

function fnNumericDecimalOnly(event) { 
    let key = event.which || event.keyCode;     
    if (key < 45 || key > 58) {
        event.returnValue = false;
    }
}
...