键入时显示值,但只取前 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> 并在单击时显示值?

SQL 语句取合计数

逐行输入评估与操作员以及如何存储更改值,直到用户键入“。”

Pandas Groupby 只取前 N 个组 [重复]

parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......

excel中只取小数点后面的数字,比如225.153只取后面的0.153