我正在使用jQuery的.alphanumeric插件,当用户直接在文本框中键入内容时,它确实可以满足我的期望。但是,如果用户要复制一个值并将其粘贴到文本框中,则所有选择都将关闭。

$("#<%= txtNumber.ClientID %>").alphanumeric({allow:"-"});


我当然可以这样做:

$(document).ready(function() {
    $("#<%= txtNumber.ClientID %>").blur(function() {
        $("#<%= txtNumber.ClientID %>").val(
            RemoveInvalidCharacters(
                $("#<%= txtNumber.ClientID %>").val()
            )
        );
    });
});

//FUNCTION REMOVES ANY ; IN TEXT TO PREVENT SQL INJECTION
function RemoveInvalidCharacters(text) {
     return text.replace(';', '');
}


但是...我不想再用.blur()函数来弄乱我的代码。还有其他解决方法吗?

最佳答案

处理粘贴事件非常简单。我在masked input plugin中使用此技术,效果很好。随意浏览源以查看其使用情况。

这是上面示例中修改的相关位。

var pasteEventName = $.browser.msie ? 'paste' : 'input';
$("#<%= txtNumber.ClientID %>").bind(pasteEventName, function() {
   setTimeout(function() {
      RemoveInvalidCharacters(
         $("#<%= txtNumber.ClientID %>").val()
      );
   }, 0);
});

关于asp.net - jQuery AlphaNumericPlugin-复制粘贴问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/636248/

10-12 12:40
查看更多