我在HTML表单中有一个文本字段,我对它有自定义要求。
该字段将自动填充冒号(:),然后是一个8位数字。用户可以在冒号前输入字母数字字符,但应限制用户在文本字段内的冒号(:)后编辑数字。这在Jquery有可能吗?
var input_value = $('#account_no").val();
// Suppose the input_value = '123abc-123:20122015';
因此,如果用户尝试编辑冒号后的值,即' 20122015',则应对其进行限制并提醒用户。此外,旧值应保留在text_field中。这可能吗?
$('#account_number').live('input propertychange paste', function() {
// Code to be written
}
JQuery版本:1.8.3
答案 0 :(得分:1)
我尝试了一个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" />
&#13;
使用blur
事件:http://jsfiddle.net/sandenay/7jk96gs7/1/
使用keyup
事件:http://jsfiddle.net/sandenay/7jk96gs7/3/