【问题标题】:Javascript return two values in onchange functionJavascript 在 onchange 函数中返回两个值
【发布时间】:2014-05-08 14:09:21
【问题描述】:

我需要在文本输入中返回两个值。这是我正在尝试的:

<input type="text" size="2" name="disOrd[<? echo $usersArray[$x]['id']; ?>]" 
value="<? echo $usersArray[$x]['disOrd']; ?>" 
onchange="updateAgentOrder(this.name,this.value)" />

它只返回第一个,而不是第二个。这甚至可能吗?我绝对需要。

这是 updateAgentOrder 所做的,只是获取值的临时交易:

function updateAgentOrder(x,y){
alert(x,y);
}

如果我改变this.name和this.value的顺序,它只会显示第一个。

【问题讨论】:

  • 应该工作,但updateAgentOrder的定义是什么?
  • ?既然您发布了 updateAgentOrder 函数的示例,我怀疑您是否希望从标题和问题中描述的函数返回多个值。您的意思是“将多个变量传递给函数”吗?
  • 男孩,我觉得自己像个白痴吗:p
  • alert() 只接受一个参数,并提醒该值。这就是您没有看到y 的原因。运行alert(x); alert(y); 以证明y 实际上在updateAgentOrange 内部可用。
  • 警报(x+' '+y);将在单个警报调用中为您提供两个值。

标签: javascript function onchange


【解决方案1】:

alert 只接受一个参数,即要提醒的东西。

alert(x);
alert(y);

这将显示两个警报,一个接一个,显示两个值中的每一个。

【讨论】:

  • 还不让我接受答案,但是你说得对,我在想什么哈哈...
  • 这个答案没有回答上面的问题,但是在对该问题的最后一次编辑之后,它看起来是正确的——即使 OP 没有要求它;-)
  • 答案是我的函数调用是正确的并且传递了正确的值。我不知道的唯一原因是我错误地显示了传递的值。
【解决方案2】:

不,您不能在 JS 中创建具有多个返回值的函数。 (如在 Python 或 Go 中)如果您需要从函数返回多个值,则需要将它们包装在文字对象中:

return {
    name: name,
    value: value
};

【讨论】:

  • @NiettheDarkAbsol 是的,OP 正在讨论在任何地方返回多个值……
  • OP 对问题的标题不正确。看了问题提示我要了updateAgentOrder的代码,清楚地说明了问题的根源。这就是 cmets 的用途:要求澄清,以便可以有效且正确回答问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2016-04-25
  • 1970-01-01
  • 2015-05-16
  • 2015-10-31
  • 2016-03-25
  • 2020-03-19
相关资源
最近更新 更多