Javascript 将 phone 数字填充到 3 个输入文本框中,名称相同,没有 id

Javascript to populate phone number into 3 input textboxes with indentical names no id

我基本上有一些奇怪的巫术问题我必须解决。

这个用于生成文本框的经典 asp 代码如下所示

<%i3_addPhoneFields "requestorPhone1","Phone <font class =txtMedium>:<font color = red>*</font></font>",i3_EmpPhoneNumber%>

我看到 OUTPUT 视图源是

<input class="txtSmall" type="text" name="requestorPhone1" value="" size="3" maxlength="3">
<input class="txtSmall" type="text" name="requestorPhone1" value="" size="3" maxlength="3">
<input class="txtSmall" type="text" name="requestorPhone1" value="" size="4" maxlength="4">
  1. 我不知道重复 3 次的名称有效 html
  2. 我不能只为每个人添加 ID
  3. 出于多种原因,我不能只更改所有这些代码。

我有 javascript 个变量用于 phone 个数字,如下所示:

 (888) 433-3017

我所拥有的基本上是在Jquery

中添加的

如果我这样做,那么所有 3 个文本框基本上都会获得相同的值(222 - 显然)

$('input[name="requestorPhone1"]').val('222');

目标

将 javascript / jquery 与正则表达式一起使用并采用

(888) 433-3017

第一个文本框输入 888,第二个文本框输入 433,第三个文本框输入 3017

你可以这样:

var els = document.getElementsByClassName("txtSmall");
if (els[0]) 
  els[0].value = "888";
if (els[1])
  els[1].value = "433";
if (els[2])
  els[2].value = "3017";

这是拆分数字然后将其填充到文本框中的一种方法:

function doIt() {
    var myString = "(123) 456-7890"; //hard-coded number for demo
    myString = myString.replace(/\D/g,''); //remove all non-numerics
    console.log(myString);

    //extract component parts from the full number string
    var first = myString.substr(0,3); //extract the first part of number
    var second = myString.substr(3,3); //second part
    var third = myString.substr(6,4); //third part
    console.log(first, second, third);

    //use jQuery's eq() to select specific elements in order
    $('input[name="requestorPhone1"]:eq(0)').val(first);
    $('input[name="requestorPhone1"]:eq(1)').val(second);
    $('input[name="requestorPhone1"]:eq(2)').val(third);
}

这里有 JSFiddle 演示:http://jsfiddle.net/hh2o1bek/

显然我已经对数字进行了硬编码,但这应该足以为您指明正确的方向。

JS + Jquery :

str = '(888) 433-3017';
a = str.split(' ');
a[0] = a[0].replace(/[^0-9]/g, '');
b = a[1].split('-');

$('input[name="requestorPhone1"]').eq(0).val(a[0]);
$('input[name="requestorPhone1"]').eq(1).val(b[0]);
$('input[name="requestorPhone1"]').eq(2).val(b[1]);

https://jsfiddle.net/y9w8nwop/2/