首页 > 解决方案 > 将参数从表单发送到 JavaScript 中的函数

问题描述

我正在尝试将表单中的值发送到打开的新窗口。在我的程序中,窗口打开,val2但未发送值,而是存在 null。

我的代码:

function eq(value) {
  ViewImg = window.open('http://localhost/coord.php?' + value, 'ViewImg', 'width=<?php print $realWidthNewWindow; ?>,height=<?php print $realHeightNewWindow; ?>', 'status=no', 'titlebar=0');
}
<form id='testform_eq' name='testform_new'>
  <input type='text' id='val2' name='val2'>
  <input type='button' value='Submit' onclick='eq(document.getElementById(val2))'>
</form>

有谁知道为什么会这样?谢谢

标签: javascripthtmlforms

解决方案


function eq() {
  const value = document.getElementById('val2').value;
  ViewImg = window.open('http://localhost/coord.php?' + value, 'ViewImg', 'width=<?php print $realWidthNewWindow; ?>,height=<?php print $realHeightNewWindow; ?>', 'status=no', 'titlebar=0');
}
<form id='testform_eq' name='testform_new'>
  <input type='text' id='val2' name='val2'>
  <input type='button' value="Submit" onclick='eq()'>
</form>

您无需向 click 函数传递任何内容。由于您的输入元素已经有一个 id 属性,因此您可以在单击它时获取输入的值。可能您想在其他地方使用该功能,这意味着您每次都必须通过该元素。

如果你真的想传递一些东西,你可以传递 id 本身。

eq('val2')

eq 函数看起来像这样:

function eq(id){
  const value = document.getElementById(id).value;
  ....
}

比您可以在其他输入的其他地方使用该功能。


推荐阅读