Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript函数中将生成的字符串作为变量传递_Javascript_Variables - Fatal编程技术网

在javascript函数中将生成的字符串作为变量传递

在javascript函数中将生成的字符串作为变量传递,javascript,variables,Javascript,Variables,这是我的html: <form> <input type='text' name='campo1' value='valor0'/> <input type='text' name='campo2' value='valor1'/> <input type='text' name='campo3' value='valor2'/> <input type='text' name='campo4' value='valor3'/> <

这是我的html:

<form>
<input type='text' name='campo1' value='valor0'/>
<input type='text' name='campo2' value='valor1'/>
<input type='text' name='campo3' value='valor2'/>
<input type='text' name='campo4' value='valor3'/>
<input type='text' name='campo5' value='valor4'/>
<input type='text' name='campo6' value='valor5'/>
<input type="button" onclick="inpt();">
</form>

我创建了一个函数来生成字符串并将其传递给另一个函数 该字符串包含输入名称中匹配字符串“campos”的输入文本的所有值。

<script type="text/javascript">
var tags_inpt = new Array();
var param = "";;
function inpt() {
tags_inpt=document.getElementsByTagName('input');
var i;
for (i=0; i<tags_inpt.length; i++) {
if ((tags_inpt[i].type=='text')&&(tags_inpt[i].name.match(/campo/))){
param += '"' +tags_inpt[i].value +'",';
}
}
alert(param + '"A"'); // this print -> "valor0","valor1","valor2","valor3","valor4","valor5","A" OK!!
// call funcion2()
funcion2("valor0","valor1","valor2","valor3","valor4","valor5","A"); // this result in valor1 in funcion2() OK!!
funcion2(param + '"A"'); // this return 'undefined' --> BAD
}

function funcion2(a,b,c,d,e,f,g){
var z = b;
alert (z);
}
</script>

var tags_inpt=新数组();
var param=“”;;
函数inpt(){
tags_inpt=document.getElementsByTagName('input');
var i;
对于(i=0;i“valor0”、“valor1”、“valor2”、“valor3”、“valor4”、“valor5”、“A”OK!!
//调用函数2()
function2(“valor0”、“valor1”、“valor2”、“valor3”、“valor4”、“valor5”、“A”);//这将导致function2()中的valor1正常!!
function2(param+''A');//此返回'undefined'-->错误
}
函数函数2(a,b,c,d,e,f,g){
var z=b;
警报(z);
}
当使用param变量动态地将参数传递给
function2()
时,会得到未定义的值

正确的方法是什么

谢谢

试试这个:

funcion2.apply(window, (param + ',"A"').split(",") );
请参见

尝试以下操作:

funcion2.apply(window, (param + ',"A"').split(",") );

请参阅

不要为此使用字符串连接,这会根据您的输入而发生错误。请改用数组:

<script type="text/javascript">
function inpt() {
  var tags_inpt = document.getElementsByTagName('input');
  var matches = [];
  for (var i=0; i<tags_inpt.length; ++i) {
    if ((tags_inpt[i].type=='text') && (tags_inpt[i].name.match(/campo/))){
      matches.push(tags_inpt[i].value);
    }
  }
  matches.push('A');
  funcion2.apply(this, matches);
}

function funcion2(a,b,c,d,e,f,g) {
  var z = b;
  alert (z);
}
</script>

函数inpt(){
var tags_inpt=document.getElementsByTagName('input');
var匹配=[];

对于(var i=0;i不要为此使用字符串连接,根据您的输入,这很容易出错。请改用数组:

<script type="text/javascript">
function inpt() {
  var tags_inpt = document.getElementsByTagName('input');
  var matches = [];
  for (var i=0; i<tags_inpt.length; ++i) {
    if ((tags_inpt[i].type=='text') && (tags_inpt[i].name.match(/campo/))){
      matches.push(tags_inpt[i].value);
    }
  }
  matches.push('A');
  funcion2.apply(this, matches);
}

function funcion2(a,b,c,d,e,f,g) {
  var z = b;
  alert (z);
}
</script>

函数inpt(){
var tags_inpt=document.getElementsByTagName('input');
var匹配=[];
对于(var i=0;i