2012-12-12 75 views
0

我有这样的代码块[源于本网站上的不同用户,谢谢!],我需要修改,以便我可以检查多个字段而不是一个。我不确定是否应该为第二个函数添加参数或将变量checkString转换为数组。添加参数或添加数组?

function getField(fieldType, fieldTitle) { 
    var docTags = document.getElementsByTagName(fieldType); 
    for (var i = 0; i < docTags.length; i++) { 
     if (docTags[i].title == fieldTitle) { 
      return docTags[i] 
     } 
    } 
} 

function checkField() { 
    var checkString = getField('input', 'fieldtocheck').value; 
    if (checkString != "") { 
     if (/[^A-Za-z\d]/.test(checkString)) { 
      alert("Please enter only alphanumeric characters for the field fieldtocheck"); 
      return (false); 
     } 
    } 
} 

我认为最好的选择是将“getfield”作为参数提供给“checkfield”,但我该怎么做?

任何帮助表示赞赏。

+1

你是什么意思你想把它变成一个数组?一个什么样的数组? – 0x499602D2

+0

我可能有我的字眼错误,但我的意思是把变量“checkString”,以便包含多个值。我认为这是一个数组是吗? – sansSpoon

回答

2

我将使你的功能更加通用的,使用类标识字段:

function checkFields(className, regex) { 
    var inputs = document.getElementsByClassName(className); 

    for (var i = 0; i < inputs.length; i++) { 
     if (!regex.match(inputs[i].value)) { 
      return false; 
     } 
    } 

    return true; 
} 

function validate() { 
    if (!checkFields('alphanum', /^[A-Za-z\d]+$/)) { 
     alert('Please enter only alphanumeric characters'); 
    } 
} 

而且你的HTML看起来是这样的:

<input type="text" class="alphanum" /> 

一个更简单的(并且更好,国际海事组织)的方法是使用jQuery validation plugin

+0

嗨搅拌机,谢谢你。此代码将在SharePoint站点上发布,因此,将字段添加到字段可能会使我的经验复杂化。尤其是形式列表表单字段,这就是我们使用fieldTitle函数的原因。无论我有没有看到你的去向,所以我会玩一玩,看看我能想出什么。 – sansSpoon