2012-04-08 75 views
0

我有两个字段需要匹配。 (已做了场1的验证函数和2)匹配javascript中两个函数中的两个字段

field01具有客户机数TXXXXX XXXXX(可以是TG或M)

field02具有区号416 /六百四十七分之九百○五

I” d希望T与416匹配,G与905匹配,M与647匹配。 并且如果规则被破坏,则显示关系错误。

我做了一个单独的函数试图比较两者。

 function validatecompare(errMessages) 
    { 

     var clientID = document.pizza.field02; 
     var telenum = document.pizza.field03; 

     var client = clientID.value; 
     var phone = telenum.value; 
     var firstL = ""; 
     var areaC = ""; 


firstL=client.substr(0,1); 
areaC =phone.substr(0,3); 


    if ((firstL) !=areaC) 
     { 
      errMessages += "<li>Client Number and Telephone No. are not consistent with our set up rules.</li>\n"; 
     } 


    return errMessages; 

} 

我知道这是错的,我只是不知道如何比较两个独立函数中的两个字段。无论我做什么,都会弹出错误消息。即使我违反了字段1和字段2的规则,错误信息也会在不应该的时候弹出。

如果有什么地方我可以阅读如何做到这一点将是非常好的未来参考。

任何帮助将不胜感激,谢谢。

+1

'firstL'总是有一个字符,'areaC'总是三,他们将永远是相同的 – gpasci 2012-04-08 01:21:33

回答

2

你的字面意思是比较416T。你需要某种查找表:

function validatecompare(errMessages) { 
    var clientID = document.pizza.field02; 
    var telenum = document.pizza.field03; 

    var client = clientID.value; 
    var phone = telenum.value; 
    var firstL = client.charAt(0); 
    var areaC = phone.substr(0, 3); 

    var areaCodes = { 
     '416': 'T', 
     '905': 'G', 
     '647': 'M' 
    }; 

    if(firstL !== areaCodes[areaC]) { 
     errMessages += "<li>Client Number and Telephone No. are not consistent with our set up rules.</li>\n"; 
    } 

    return errMessages; 
} 
+0

这样做“416”:“T”这个变量里面,这是否匹配?你用charAt是因为... char是用于字母的吗?和charAt(0)会在索引零处找到该字母?对不起,如果我问的是愚蠢的大声笑,我只是想确保我明白这里发生了什么。 – Umeed 2012-04-08 01:32:36

+1

@Umeed:是的,正好。它所做的是用这些属性创建一个对象,然后在对象中查找属性。 '.charAt(0)'是第一个字符 - 它只是一个更简洁的说'.substr(0,1)'的方式。 – Ryan 2012-04-08 01:44:11

+0

非常感谢帮助真的很感激的人。 – Umeed 2012-04-08 01:59:28