2012-12-12 79 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