我需要在我的asp.net MVC3应用程序中为我的问题提供帮助我有一个文本框验证货币格式($ 228.00)但在此文本框中不能使用DEL键,因为“。”和删除键具有相同的ASCII键,46和i也在此文本框中设置了验证“。”只有一次会在文本框中接受,所以如果“。”输入一次然后删除将无法正常工作
这是我的验证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;
}
这是我的文本框的View(Html)代码:
<input type="text" id="t1" onkeypress="return validateForCharacter(value, id, event)/>
答案 0 :(得分:0)
Jquery做对了......但是如果你需要在Firefox或IE9上专门检测删除密钥,你可以使用event.key
属性。
即:
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>");
});
});
&#13;
<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>
&#13;