我知道获取文本框的值就像
$("#text").val();
<input type="text" id="text" />
但是我想在几个数字之后输入-
,如果我输入021(三个数字)它应该放在它之后 - 就像021-
012-
之后那样。
这就是我所做的。
$(document).ready(function(){
$("#text").on('focus',function()
{
if((this).val() == "021"){
$("#text").text('-');
}
}
}
但是这种方法并不工作,我认为它不是正确的。任何人都可以做到吗?
答案 0 :(得分:2)
您在input
元素中输入的内容只是值,而不是该元素的HTML或.text()
。而是继续使用.val()
并执行:
$("#text").val($("#text").val()+"-");
.text()
的jQuery文档中提到了这一点:
.text()
方法不能用于表单输入或脚本。要设置或获取input
或textarea
元素的文本值,请使用.val()
方法。
答案 1 :(得分:0)
$('#text').keyup(function() {
var val = this.value.replace(/\D/g, '');
var newVal = '';
while (val.length > 3) {
newVal += val.substr(0, 3) + '-';
val = val.substr(3);
}
newVal += val;`enter code here`
this.value = newVal;
});