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">
- 我不知道重复 3 次的名称有效 html
- 我不能只为每个人添加 ID
- 出于多种原因,我不能只更改所有这些代码。
我有 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]);
我基本上有一些奇怪的巫术问题我必须解决。
这个用于生成文本框的经典 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">
- 我不知道重复 3 次的名称有效 html
- 我不能只为每个人添加 ID
- 出于多种原因,我不能只更改所有这些代码。
我有 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]);