我有一个 HTML 表单中的文本字段,并且我对它有一个自定义要求。
该字段将自动填充冒号 (:),然后动态填充 8 位数字。用户可以在冒号之前输入字母数字字符,但应限制用户在文本字段内编辑冒号 (:) 后面的数字。这在 Jquery 中可能吗?
var input_value = $('#account_no").val();
// Suppose the input_value = '123abc-123:20122015';
因此,如果用户尝试编辑冒号后的值(即“20122015”),则应对其进行限制并提醒用户。而且,旧值应保留在文本字段中。这可能吗?
$('#account_number').live('input propertychange paste', function() {
// Code to be written
}
JQuery 版本:1.8.3
最佳答案
我尝试了 jQuery 解决方案:
我知道这是一个黑客行为,但我正在 blur
事件上的 :
符号之后进行模式匹配。
这是我所做的:
$(document).ready(function() {
var input_value = $("#account_no").val();
var OriginalStr = input_value.substr(input_value.indexOf(":") + 1, input_value.length);
//console.log(OriginalStr);
$("#account_no").on("blur", function() {
var val = $(this).val();
//console.log(val);
var substr = val.substr(val.indexOf(":") + 1, val.length);
console.log(substr);
if (substr !== OriginalStr)
$("#account_no").val(input_value);
else
input_value = $("#account_no").val();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="account_no" value="123abc-123:20122015" />
使用blur
事件进行 fiddle :http://jsfiddle.net/sandenay/7jk96gs7/1/
使用keyup
事件进行 fiddle :http://jsfiddle.net/sandenay/7jk96gs7/3/
关于javascript - 限制用户编辑特殊字符后的字符 - Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079470/