1

我需要帮助解决我的 asp.net MVC3 应用程序中的问题 我有一个文本框,用于验证货币格式 ($228.00) 但在此文本框中它不适用于DEL密钥,因为.删除密钥具有相同的 ASCII 密钥,即 46 .我还在这个文本框中设置了一个验证,.只有一次将在文本框中接受,所以如果“。” 输入一次然后删除将不起作用。

这是我的验证 Javascript:

function validateForCharacter(val, id, e) {
    window.event.keyCode : -1;
    var key = e.keyCode || e.charCode || e.which;
    var currentChar = String.fromCharCode(key);
    if (val.indexOf(currentChar) != -1 && currentChar == ".")
    {
           return false;
    }
    if (key >= 48 && key <= 57 || key == 46 || e.keyCode === 8 || e.keyCode === 9 || e.keyCode === 37 || e.keyCode === 35 || e.keyCode === 39)
    {
           $(this).val("");
           return true;
    }
    return false;
 }

这是我的文本框视图(Html)代码:

<input type="text" id="t1" onkeypress="return validateForCharacter(value, id, event)/>
4

1 回答 1

0

Jquery 做对了...但是如果您需要专门检测 Firefox 或 IE9 上的删除键,您可以使用event.key属性。

IE:

if (event.key == "Delete")

现场演示:

$(document).ready(function() {
  $("#nondeletable").on("keydown", function(event) {
    $("#result").html(event.type + ": " + event.which);
    if (event.key == "Delete")
      $("#result").append(" <b>Delete!</b>");
  });


});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="nondeletable" />
<div id="result"></div>

于 2015-09-18T21:41:57.463 回答