键入时显示值,但只取前 6 个数字,并更改数字的顺序
Posted
技术标签:
【中文标题】键入时显示值,但只取前 6 个数字,并更改数字的顺序【英文标题】:Show value while typing but only take first 6 number only, and change order of number 【发布时间】:2018-08-01 01:26:53 【问题描述】:当我输入 ID NO 字段时,我有 2 个字段(前六个数字是 YYMMDDxxxxxx
的出生日期,(始终包含 12 个数字),DOB 字段将根据 ID NO 自动填充,但值DOB 仅包含 ID NO 字段中的前 6 个数字,订单将为DDMMYY
。
示例:
身份证号:931121091010 (YYMMDD)
出生日期:211193 (DDMMYY)
var $dob = $("#dob");
$("#id_no").keyup(function()
$dob.val(this.value);
);
$("#id_no").blur(function()
$dob.val(this.value);
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<form>
<div>
<label>ID NO</label>
<input type="text" name="id_no" id="id_no" class="form-control" onKeyPress="return
goodchars(event,'1234567890',this)" required="" value="">
</div>
<div>
<label>DOB</label>
<input type="text" name="dob" id="dob" class="form-control" value="">
</div>
</form>
【问题讨论】:
听起来像学校练习,你会发布你尝试过的内容吗? 是的,我已经更新了我在 sn-p 中尝试过的内容。我只能将所有值复制到 DOB 字段,但我不知道如何在输入时更改格式 【参考方案1】:请看下面的实例:
var $dob = $("#dob");
$("#id_no").keyup(function()
var str = this.value;
var strYYMMDD = str.substring(0, 6);
if (str.length > 6)
var strDDMMYY = strYYMMDD.substring(4, 6) + strYYMMDD.substring(2, 4) + strYYMMDD.substring(0, 2);
$dob.val(strDDMMYY);
else
$dob.val("");
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<div>
<label>ID NO</label>
<input type="text" name="id_no" id="id_no" class="form-control" maxlength="12" onKeyPress="return
goodchars(event,'1234567890',this)" required="" value="">
</div>
<div>
<label>DOB</label>
<input type="text" name="dob" id="dob" class="form-control" value="">
</div>
</form>
【讨论】:
以上是关于键入时显示值,但只取前 6 个数字,并更改数字的顺序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JSON 数据填充 <select> 并在单击时显示值?
parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......