目前我正在遍历我的表单元素并通过检查验证它 如果用户输入任何内容则反对。除了我需要使用不同的 验证特定字段。具体来说,我需要验证是否有效 电话号码。这是我的代码。我循环遍历所有输入元素但是 需要选择具有id phoneNumber的元素并查看它是否为a 有效的电话号码。它根本没有达到条件,看是否 属性是一个电话号码。非常感谢任何帮助。
$("#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");
}
});
答案 0 :(得分:5)
我认为您需要将条件语句更改为以下内容:
if($(this).attr("id") == 'phoneNumber'){
alert(placeholderText + " check phone number");
}
选择器id[phoneNumber]
无效。我认为你将语法与另一个选择器混淆了......如果你只想匹配ID中有phoneNumber
的元素,你可以使用这样的东西:
$("element[id='phoneNumber']")
虽然这个例子可能有点奇怪,因为有一个特定的选择器来匹配元素的id。但是......众所周知 - 皮肤独角兽的方法不止一种了:)
最后一点注意事项:您已使用$(this).attr("id")
提取给定元素的id
,实际上您只需使用本机JavaScript即可提取该属性:
this.id
所以把它们放在一起就会产生这样的结果:
if(this.id == 'phoneNumber'){
alert(placeholderText + " check phone number");
}
即使您在此阶段没有真正感受到,这肯定会提高代码的性能。一旦开始使用一些更复杂和密集的JS应用程序,您将开始注意到这些改进 (感谢David Thomas向我指出,并jfriend00说服我编辑我的答案:P)