У меня есть скрипт, который привязывается к событию keyup при загрузке страницы, он устанавливает курсор в первое поле, а затем, когда кредитная карта смахивает, она разбирает данные магнитных полос, но в настоящее время код кажетсячтобы запускаться несколько раз, и я не уверен, как просто запустить его один раз.
Вот соответствующий код:
<script type="text/javascript">
window.onload = function () {
$("#cn").focus();
$("#cn").bind("keydown keyup", doItPlease);
}
function doItPlease() {
var count = 0;
if ($(this).val().indexOf('?') !== -1 && count < 1) {
setFromCCS($(this).val())
count++;
}
}
</script>
Вот ссылка на полный код: http://paste2.org/p/1693324
ОБНОВЛЕНИЕ 1:
Добавление $ (document) .ready (function ()) решило большую часть проблемы, но я все еще не получил нужный мне результат.Он по-прежнему работает дважды, поскольку в строке, которая вводится, есть два вопросительных знака (?).Есть ли простой способ ограничить запуск только один раз?
Текущий код: http://paste2.org/p/1693577
ОБНОВЛЕНИЕ 2:
Хорошо, у меня есть рабочее решение, где сценарий повторно проанализирует строку и заменит ее.Я чувствую, что это взлом, и есть лучший способ сделать это, просто не знаю, как в данный момент.Вот код:
$(document).ready(function () {
var count = 0;
$("#cn").focus();
$("#cn").keyup(function () {
if ($(this).val().indexOf('?') !== -1 && count < 1) {
var magstripe = $(this).val().substring(0, $(this).val().indexOf('?'));
setFromCCS(magstripe);
count++;
}
else if ($(this).val().indexOf('?') !== -1 && count > 0) {
$("#cn").val($(this).val().substring(0, $(this).val().indexOf(';')));
}
});
});
Вот анализируемый MagStripe:% B9999999999999999 ^ AAAAAAA / AAAAAA ^ 1204101 999?; B9999999999999999 = 120410110000999?