目前我正在循环遍历我的表单元素并通过检查来验证它 如果用户输入了任何内容。除非我需要使用不同的 特定字段的验证。具体来说,我需要验证是否有效 电话号码。这是我的代码。我正在遍历所有输入元素但是 需要挑选出具有 id 电话号码的元素并查看它是否是 有效的电话号码。只是没有达到条件来查看是否 属性是电话号码。非常感谢任何帮助。
$("#phoneForm :input").each(function(){
var placeholderText = $(this).attr("placeholder");
if($(this).val().length == 0){
alert(placeholderText.replace('*','') + ' field is required');
$(this).focus();
valid = false;
return false;
}
if($(this).attr("id['phoneNumber']")){
alert(placeholderText + " check phone number");
}
});
最佳答案
我认为您需要将条件语句更改为如下所示:
if($(this).attr("id") == 'phoneNumber'){
alert(placeholderText + " check phone number");
}
选择器id[phoneNumber]
根本无效。我认为您将语法与另一个选择器混淆了...如果您只想匹配 ID 中包含 phoneNumber
的元素,您可以使用如下内容:
$("element[id='phoneNumber']")
虽然这个例子可能有点奇怪,因为有一个特定的选择器来匹配元素的 id。但是..众所周知 - 给 unicorn 剥皮的方法不止一种:)
最后一点:您已经使用 $(this).attr("id")
来提取给定元素的 id
,而实际上您可以简单地使用原生 JavaScript 可以像这样提取该属性:
this.id
所以把所有这些放在一起会导致这样的结果:
if(this.id == 'phoneNumber'){
alert(placeholderText + " check phone number");
}
即使您现阶段还没有真正感觉到,这肯定会提高代码的性能。一旦您开始使用一些更复杂和密集的 JS 应用程序,您就会开始注意到这些改进。
(感谢 David Thomas 向我指出这一点,并感谢 jfriend00 说服我编辑我的答案:P)
关于jQuery 循环遍历表单元素并选择特定的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490903/