由於某種原因或其他原因,我需要使用javascript來獲取12個隱藏輸入字段的值併爲每個值設置一個變量。在聲明變量時使用try catch
我不確定最好的方法是什麼。我希望能夠得到這些值,如果它們沒有被創建,即輸入字段不存在,那麼id就會生成一個錯誤。
會使用一個try/catch是否適合這個,或者我應該簡單地使用typeof來檢查已創建的變量?
會把它們放在一個數組中,所以我可以循環檢查它們的存在是個好主意嗎?
感謝
由於某種原因或其他原因,我需要使用javascript來獲取12個隱藏輸入字段的值併爲每個值設置一個變量。在聲明變量時使用try catch
我不確定最好的方法是什麼。我希望能夠得到這些值,如果它們沒有被創建,即輸入字段不存在,那麼id就會生成一個錯誤。
會使用一個try/catch是否適合這個,或者我應該簡單地使用typeof來檢查已創建的變量?
會把它們放在一個數組中,所以我可以循環檢查它們的存在是個好主意嗎?
感謝
這是做它的簡單方法。嘗試抓住相當沉重。另外,你會在哪裏拋出錯誤?不要錯誤地解開流程,將錯誤收集到結構良好的響應中。這樣,如果你的第一個失蹤,但其他X不是,那麼你仍然可以完成一些工作。
if (typeof(something) !== "undefined") { doStuff(); }
否則,我需要更多的信息來幫助你解決你的問題。
謝謝克里斯,我需要設置它,所以如果任何變量缺少,然後輸出一個錯誤,即在屏幕上放置一些文本,說有錯誤 – Lee 2012-04-10 20:08:57
if(document.getElementById("someID")){
// add the value since the input exists
}
else{
// skip or use default - and inform if need be
}
實現示例: http://jsfiddle.net/zVz6h/1/
代碼:
function getValueArray(idArray){
var valArray = [];
for(var i=0;i<idArray.length;i++){
if(document.getElementById(idArray[i])){
valArray.push(document.getElementById(idArray[i]).value);
}
else{
valArray.push("not defined");
}
}
return valArray;
}
var txtIDs = ["txt1","txt2","txt3","txt4","txt5","txt6","txt7","txt8"];
alert(getValueArray(txtIDs));
這裏有一個簡單的函數,它將檢查頁面上是否包含12個輸入元素。如果您需要檢查個別輸入元素是否存在,請提供更多信息。
function SaveInputValues() {
var inps = document.getElementsByTagName('input');
if (inps.length !== 12) {
return alert("There must be exactly 12 input elements. You have included " + inps.length + ".");
}
var vals = [];
for (i = 0; i < inps.length; i++) vals.push(inps[i].value);
inps = null; // provides closure
}
謝謝,這是我不認爲的一種不同的方法。在頁面上會有其他輸入,但這些將被包裝在一個div中,所以我可以用它來引用它們。 – Lee 2012-04-10 20:38:43
向我們展示一些代碼,以便我們從那裏開始。 – 2012-04-10 19:44:54
對我來說似乎是所有這些都是矯枉過正的。如果你想拋出一個錯誤,爲什麼要檢查呢?讓錯誤發生在何處/何時使用。或者,如果你想立即提出錯誤,你可以使用if(!x)拋出新的錯誤(...) – ControlAltDel 2012-04-10 19:49:51
謝謝我現在沒有任何代碼,我純粹想討論最好的方法。 – Lee 2012-04-10 20:05:57