2014-12-05 33 views
1

我看過並閱讀this問題。在那裏找不到我的答案。檢查輸入字段的值,不管類型

我有一些接受html模板的代碼,並在表單中使用該模板。 該模板將包含x個輸入字段。

有沒有一種方法來檢查這些輸入字段中的值一般? 有點像這樣:

var inputFields = element.getElementsByTagName('input'); 
inputFields.forEach(function (element) { 
    var value = element.value; 
    // ... something 
}); 

我知道這是行不通的,但你的想法。

我認爲我必須爲不同的輸入類型編寫特殊情況,但我想問問任何人是否有任何這個問題的經驗。

這是在純JavaScript中完成的,所以我並不需要jQuery。除非你有一個非常簡潔的方式在jQyery中完成,與純粹的JavaScript相比。

編輯:我需要檢查是否有任何輸入已輸入字段,無論是文件還是文本。我需要刪除那些沒有價值的人的名字屬性。

+0

你是什麼意思? – 2014-12-05 13:07:33

+1

_「我認爲我必須爲不同的輸入類型編寫特殊情況」_ - 你爲什麼這麼想?所有''元素都會有一個值(儘管該值可能是一個空字符串)。當你說「檢查一個值」時,你的意思是你有一些已知的值,比如說「123」,並且你想知道是否有任何輸入值爲「123」? – nnnnnn 2014-12-05 13:08:30

+0

使用JQuery。互聯網上提供了大量示例。這是一塊蛋糕:) – 2014-12-05 13:09:17

回答

0

使用以下內容,我看不到您需要針對不同類型的任何特殊處理。您可以只讀值屬性:

<script> 
    var t = '<table>'; 
    var inputTypes = ('hidden text tel url email password datetime date month week' + 
        ' time number range color checkbox radio file submit image' + 
        ' reset button').split(' '); 
    var type; 

    for (var i=0, iLen=inputTypes.length; i<iLen; i++) { 
    type = inputTypes[i]; 
    value = type == 'number'? 10 : 'input type ' + type; 
    t += '<tr><td>' + type + '<td><input type="' + type + 
     '" name="' + type + 'Input" value="' + value + '">'; 
    } 
    document.write(t + '<\/table>'); 
</script> 

<button onclick="getValues(document.getElementsByTagName('input'))">Get values</button> 

<script> 
function getValues(inputs) { 
    var input; 
    for (var i=0, iLen=inputs.length; i<iLen; i++) { 
    input = inputs[i]; 
    console.log(input.name + ': ' + input.value); 
    } 
} 
</script> 

您可能想要檢查是否選中了複選框和無線電。爲此,獲得的值可以是:

if (input.type in {radio:'', checkbox:''}) { 

    if (input.checked) { 
    // get value 
    } 

} else { 
    // get value 
}