在每个浏览器中以相同的方式操作

时间:2018-06-02 11:37:39

标签: javascript jquery

我有问题。此代码仅适用于Google Chrome。我需要它在任何其他浏览器中运行良好。有谁知道怎么做并帮助我?我需要代码在Firefox中运行良好。因为当您在Firefox浏览器中打开脚本时,密钥(TAB)被检测为字母。我无法在列之间自由切换



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<html>
<head>
        <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript" ></script>
<meta charset="utf-8">
</head>
<body>



<script type="text/javascript" >

function preventNonNumericalInput(e){var n=void 0===(e=e||window.event).which?e.keyCode:e.which;String.fromCharCode(n).match(/^[0-9,\b,-]+$/)||(alert("WPISZ LICZBĘ"),e.preventDefault())}!function(n){n.fn.average=function(){var e=0;return this.each(function(){e+=parseFloat(n(this).val())}),e/n(this).length}}(jQuery),$(document).ready(function(){$(":reset")}),$(document).ready(function(){$("#calc").click(function(){var e=$("input[type='number']").average();console.debug(e),$("#result").html(e)}),$(".reset").on("click",function(){$("#result").html(" ")})});

</script>


<h1>Oblicz średnią:</h1>
<form action="">
<input onkeypress="preventNonNumericalInput(event)" type="number">
<input onkeypress="preventNonNumericalInput(event)" type="number">
<input onkeypress="preventNonNumericalInput(event)" type="number">
<div id="result" type="reset" ></div><br>
<input type="button" id="calc" value="Licz">
<input type="reset"  value="Reset"  class="reset">
</form>



</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

所以,你已经放了一些Javascript来禁止用户在表单中使用除数字输入以外的任何东西,对吧?因此,在输入时按下除0-9之外的任何其他按键启动警报:“WPISZLICZBĘ”。

首先,您要“断开”不可读的Javascript行。

function preventNonNumericalInput(e) {
    var n = void 0 === (e = e || window.event).which ? e.keyCode : e.which;
    String.fromCharCode(n).match(/^[0-9,\b,-]+$/) || (alert("WPISZ LICZBĘ"), e.preventDefault())
}! function(n) {
    n.fn.average = function() {
        var e = 0;
        return this.each(function() {
            e += parseFloat(n(this).val())
        }), e / n(this).length
    }
}(jQuery), $(document).ready(function() {
    $(":reset")
}), $(document).ready(function() {
    $("#calc").click(function() {
        var e = $("input[type='number']").average();
        console.debug(e), $("#result").html(e)
    }), $(".reset").on("click", function() {
        $("#result").html(" ")
    })
});

这一行:

String.fromCharCode(n).match(/^[0-9,\b,-]+$/) || (alert("WPISZ LICZBĘ"), e.preventDefault())

读取输入并查看它是否为数字(0-9)或连字符。如果您添加|| e.keyCode == 9,则可以使用标签按钮。

String.fromCharCode(n).match(/^[0-9,\b,-]+$/) || e.keyCode == 9|| (alert("WPISZ LICZBĘ"), e.preventDefault())

但是您仍然会遇到问题,例如在Chrome中您可以使用向上和向下箭头来增加或减少金额,而在Firefox中则会出错。

答案 1 :(得分:0)

试试这个

File file = new File("/com/Convocatoria/resources/DB.txt");
Scanner sc = new Scanner(file);

JSFiddle for reference