MVC ビューに、文字 Y または N のみを入力できるようにしたい入力フィールドがいくつかあります。
Firefox (現在のバージョンは 23.0.1) を使用してこれらのフィールドにタブで移動すると、フィールドの値が強調表示され、許可された文字を入力して、基本的に値を上書きできます。たとえば、入力の値が N の場合、N が強調表示され、Y を押すと N が Y に置き換えられます。
ただし、Chrome または IE(10) を使用すると、フィールドが強調表示されますが、許容されるキーは入力ボックスの値を上書きしません。フィールドの強調表示が解除され、カーソルが値の末尾に配置されます。ブー!
私は何が欠けていますか?
//Keydown and blur events for textboxes that only allow Y, or N
$(".onlyYN").keydown(function (e) {
if (e.keyCode === 89 ||
e.keyCode === 8 ||
e.keyCode === 9 ||
e.keyCode === 78 ||
e.keyCode === 13 ||
e.keyCode === 46 ||
e.keyCode === 16) {
clearError(this);
setControlValueToUpperCase(this);
return;
}
markControlAsWarning(this);
alertify.log("The " + $(this).attr('id') + " field only accepts the single characters 'Y' or 'N'");
e.preventDefault();
}).blur(function () {
if ($(this).val().toUpperCase() !== "Y" && $(this).val().toUpperCase() !== "N") {
markControlAsError(this);
alertify.error("The " + $(this).attr('id') + " field only accepts the single characters 'Y' or 'N'");
return;
}
clearError(this);
setControlValueToUpperCase(this);
});