2015-04-25 4 views
1

enter image description here enter image description hereМаска не работает?

У меня есть InputBox с маской, но входы не допускается аппаратной клавиатуры, вместо этого они имеют сенсорный экран keyboard() функцию только что вставляет символы в этой области.

Но когда keyboard() вставляет входы в поле ввода, он не может сгенерировать эффекты маски.

Как сделать маску также работать, когда используется keyboard()?

<script type="text/javascript" src="http://digitalbush.com/wp-content/uploads/2014/10/jquery.maskedinput.js"></script> 
<script type="text/javascript"> 

function keyboard(input) { 
    if (input==='BACKSPACE') { 
    tvalue = ''; 
    } else if(input ==='QUOTE') { 
    tvalue = tvalue + "'"; 
    } else if(input ==='SPACE') { 
    tvalue = tvalue + " "; 
    } else { 
    tvalue = tvalue + input; 
    }  
    $('#' + tinput).val(tvalue); 
    console.log(">>> Keyboard: ", input); 
} 

$(document).ready(function(){ 
    $("#rrn").mask('99.99.99-999.99'); 

// $(document).bind('contextmenu', function() { 
// console.log('Touch screen, has no right click.'); 
// return false; 
// }); 
// 
// $(document).mousedown(function() { 
// return false; 
// }); 

}); 
</script> 


<div> 
    <input type="text" name="rrn" id="rrn" style="position: absolute; left: 519px; top: 195px; width: 366px; height: 42px;border:none;" autocomplete="off" onclick="inputselected(this, event);"/>  
    <img src="images/nl/keyboard.png" border="0" usemap="#map_logo_new" id="spmain_new" /> 
    <map name="map_logo_new"> 
    <area shape="rect" coords="825,19,910,74" href="#" onclick="keyboard(0);"> 
    <area shape="rect" coords="22,83,107,138" href="#" onclick="keyboard('A');"> 
    </map>  
</div> 

ответ

2

Вы программно устанавливаете значение входа, которое не вызывает каких-либо событий. Чтобы заставить маску применить, вам нужно инициировать событие самостоятельно (после вызова .val()).

Попробуйте изменить это:

$('#' + tinput).val(tvalue).trigger('input'); 

jsfiddle


Это для ввода JQuery Masked Плагин от Джоша Буша в digitalbush.com.


В это время самая последняя версия этого libary является v1.4. Для более ранней версии библиотеки вам, возможно, придется попробовать событие 'click'.

+0

Не работает, просто попробовал .change(), но все тот же, маску не работает, когда используется функция keyboard(). – YumYumYum

+0

.click() тоже не работает, он только вводит одно значение, а затем все еще маскирует эффекты не работают – YumYumYum

+0

@YumYumYum - Я пытаюсь посмотреть исходный код, чтобы увидеть, что делать. Если вы хотите попробовать другое: '$ ('#' + tinput) .val (tvalue) .trigger ('keydown');' –

Смежные вопросы