由于某种原因或其他原因,我需要使用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