引用HTML数字表单元素的长度
Referencing the length of a HTML number form element?
我有一个接受数字的表单,并且有一个特定的(电话号码或phNo
)表单元素,我只想接受长度为7位的数字(不多也不少)。使用Javascript的想法是:
如果元素长度不等于7:true
否则false
这是我的代码:
var phNo = document.getElementsByName('phNo'); //here I try to get
the form value in the form of an object. This is where I think I am going wrong
var phNoString = phNo.toString(); //Not to sure if I need this line or not, read somewhere that .length only works on a string
if(phNoString.length != 7) {
//Do something for false
return;
} else {
//Do something for true
}
<form id="myForm" action="form_action.asp">
First name: <input type="text" name="fName"><br>
Last name: <input type="text" name="lName"><br>
Phone Number: <input type="number" name="phNo" max="7"><br>
Credit Card Number: <input type="number" name="cardNo"><br>
</form>
<input id="submit" type="button"value="Submit"onClick="detailsSubmit()">
var phNoString = phNo.toString();
这一行将返回[object HTMLInputElement]
,如果您想要用户在输入中键入的值,则需要使用phNo.value
。
与问题无关,但这里的<input type="number" name="phNo" max="7">
max
属性只意味着该输入中可能的最高数字是7。使用支持html5输入的浏览器,如果我试图输入任何电话号码,它会给我一个无效的高亮显示。我会将其更改为一个简单的文本字段,并使用maxlength属性,这可能正是您想要的;
<input type="text" name="phNo" maxlength="7">
"getElementsByName"返回一个集合类型,您应该这样做来读取元素中的值。
var phNoString = document.getElementsByName('phNo')[0].value;
if(phNoString.toString().length != 7) {
//Do something for false
return;
} else {
//Do something for true
}
如果您决定将其保留为数字输入,则不需要将其转换为字符串。电话号码不能以0开头,所以最小的号码是1000000。如果您的输入最大值为7,那么您可以检查该值是否大于7。
var phNoString = document.getElementsByName('phNo')[0].value;
if(var phNoString > 1000000){
// truthy
}else{
// falsey
}
document.getElementsByName()函数在HTML5中贬值。请参阅w3school网站中的注释。请改用document.getElementById()
,并在手机输入控件中添加ID标签。
也可以使用input type="tel"
作为您的电话号码。这样,浏览器,尤其是移动设备上的浏览器,就知道如何在屏幕上正确显示输入值。
最后,注意使用正则表达式对输入的电话号码进行验证检查。此外,需要注意的是,HTML5正则表达式验证在JavaScript函数执行后运行。下面是一个代码片段,你可以让你的新开发人员投入其中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<form>
Phone Number (format: xxx-xxx-xxxx):: <input type="tel" id="phNo" name="phNo" pattern="^'d{3}-'d{3}-'d{4}$"/><br>
<button type="submit" name="submit" onclick="checkphonelength()">submit</button>
</form>
<script type="text/javascript">
function checkphonelength(){
var phNoStringLength = document.getElementById('phNo').value.length;
if(phNoStringLength === 12) {
alert("true");
return true;
}
alert(false);
return false;
}
</script>
</body>
</html>
- Javascript更新孙窗口中的表单元素
- 阻止表单元素提交
- 根据select选项元素将表单重定向到不同的URL
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 使用带有.net autopostback的ryanfait.com自定义表单元素
- 使用javascript更改表单元素的ID值
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 表单中元素的更改值为't已发布
- Small Javascript从动态表单中删除多个元素的问题
- 为什么表单元素不应命名为submit
- 如何使用相同的javascript控制表单中的不同元素
- 从函数中选择要触发表单提交的正确元素
- 如何重置搜索表单中的特定表单元素
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 使用 ng-repeat访问 ng 表单元素/值
- 获取电子邮件附件的表单元素
- js 语法传递名称元素表单验证
- 如何选择元素表单列表并将其放入文本框中
- 如何使用JQuery获取主体中第一个元素(表单)的id
- 尝试使用每个查找元素表单XML文件