jQuery循环遍历表单元素并选择特定的id

时间:2013-05-10 21:12:03

标签: jquery

目前我正在遍历我的表单元素并通过检查验证它 如果用户输入任何内容则反对。除了我需要使用不同的 验证特定字段。具体来说,我需要验证是否有效 电话号码。这是我的代码。我循环遍历所有输入元素但是 需要选择具有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");
    }

});

1 个答案:

答案 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)