2016-08-09 2 views
0

Я не веб-дизайнер каким-либо образом, я просто пытаюсь внести изменения в что-то, что устаревший программист встал на свои места.jQuery Strip White-space

На странице длина текстового поля составляет 10 символов, произошло то, что источник изменил код на 10 символов на своей странице, чтобы включить пробелы, поэтому клиенты копируют и вставляют этот код (включая пробелы), что делает это 14 символов.

Это сообщение об усеченных кодах, потому что люди не обращают внимания (не их вина, очевидно).

я нашел JQuery код положить в на входе на форму, чтобы лишить пробельных на пасты:

$(function() { 
 
    $('#dlc_code_txtbx0').bind('input', function() { 
 
    $(this).val(function(_, v) { 
 
     return v.replace(/\s+/g, ''); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<!-- This is my form field --> 
 
<input type="text" id="dlc_code_txtbx0" name="dlc_code_txtbx0" 
 
     class="cen" size="20" maxlength="10" placeholder="yNGsstK" />

Когда я скопировать и вставить аа бб сс дд ee в поле, он удаляет пробелы, но все же усекает символы. Может ли кто-нибудь указать мне в правильном направлении?

+0

u может вводить только 10 символов ** aa bb cc d ** ... при вставке ввода строки принимайте только первые 10 и используйте вашу функцию ... –

+1

@IvanKaraman правильно, но верно, пробел полосы на вставке выше jQuery должен стирать пробел перед вставкой, чтобы «разделенная» версия составляла 10 символов. Или я прав, полагая, что он вставляет его в поле, и THEN набрасывает его, чтобы он только удалял то, что первоначально было вставлено? – Lynchie

+0

@ Lunchie, когда вы вставляете строку, он принимает только 10 символов с пробелами, чем удаляет ... –

ответ

2

Вы не можете добавить больше символов, чем 10, из-за атрибута maxlength на input. Если вы хотите удалить этот атрибут, вы можете обрезать текст в JavaScript (JQuery), как так:

$(function(){ 
    $('#dlc_code_txtbx0').bind('input', function(){ 
     $(this).val(function(_, v){ 
      var outputValue = v.replace(/\s+/g, ''); 
      return outputValue.substr(0, 10); // substr will truncate the final string 
     }); 
    }); 
}); 

Посмотрите на substr() reference.

+0

Top man LuudJacobs :) – Lynchie

+0

np @Lynchie. Пожалуйста, примите ответ, если он вам поможет. – LuudJacobs

+0

@ GrégoireFruleux работает на моей тестовой странице? – Lynchie