在mvc中复制粘贴上的文本框

时间:2014-08-13 05:12:14

标签: javascript jquery asp.net-mvc jquery-mobile

我有一个基于某些条件具有变量maxlenght的文本框。有与文本框关联的keyup和keydown事件。粘贴时,我的maxlenght验证失败。如果选择“位置”,则文本框的类型为maxlenght 6的数字,而其他类型的文本分别为maxlen 11和15“enter image description here

$(document).on("pageinit", function (event) {
    $('input[type="text"]').on('keyup keydown', function (event) { /*Some validation*/} });
 $('input[type="number"]').on('keyup keydown', function (event) { /*Some validation*/} });

2 个答案:

答案 0 :(得分:0)

JQuery

 $(document).ready(function()  {
            var characters ;   
            $("#text").keyup(function(){
                if($('#vehicle').prop('checked')){
                characters=5;
                }
                else{
                characters=10;
                }
                if($(this).val().length > characters){
                $(this).val($(this).val().substr(0, characters));
                }
            });
        });

HTML

<input type="checkbox" id="vehicle" value="Bike">I have a bike<br>
<input type="text" id="text"/>

SEE DEMO HERE

答案 1 :(得分:0)

我使用粘贴事件来触发keyup事件,因为只有使用粘贴事件,我才能以某种方式获取输入,但是我无法操纵给定的输入。这是我找到方法的方法-

$(".AlphaValidateOnPaste").on('paste', function(e) {
      $(e.target).keyup();
    });

    $('.AlphaValidateOnPaste').on('keyup',function(e){
        var value = $(this).val();
        var i = value.length;
        while (i--) {
          var result = value.charAt(i).match(/^[a-zA-Z ]*$/);
            if(result == null){
                $(this).val('');
                alert('Only Alphabates and Spaces');
                break;
            }
        }
    });
<label for="name">Name <span class="required">*</span></label>
<input type="text" name="employee_name" class="form-control AlphaValidateOnPaste" id="employee_name" required>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>