7

我正在尝试将onclick事件上的变量传递给 Javascript 函数。我正在尝试以下方式,我无法在 Javascript 函数中获取输入值。(我期待 1 的警报。)这是正确的做法吗?请帮忙。

<html>

    <head>
        <script>
            function submit_value(form) {
                alert(form.ip.value);
            }
        </script>
    </head>
    <table>
        <tr>
            <form>
                <td>
                    <input id="ip" type="text" value="1">
                </td>
                <td>
                    <a href="javascript:;" onClick="submit_value(this)">Button</a>
                </td>
            </form>
        </tr>
    </table>

</html>
4

5 回答 5

5

你的脚本不知道是什么form。您需要指定document.forms[0].ip.value

如果文档上有多个表单,那么最好先将表单元素存储在变量中。你可以在表格上有一个ID...

<form id="formID">

在 submit_value 函数中,您可以拥有

var myForm = document.getElementById('formID'); alert(myForm.ip.value);

编辑:

您可以this.form用于锚标记的 onClick。

于 2012-12-18T04:50:12.057 回答
0

把函数改成这样:

    function submit_value(form) {
        alert(document.getElementById('ip').value);
    }

当你写submit_value(this)时, 的值this实际上是元素<a>本身,而不是表单。

于 2012-12-18T04:54:52.640 回答
0

我假设你可以使用 jquery。选择器很简单。

将以下表单 html 从

<form>
        <td>
            <input id="ip" type="text" value="1">
        </td>
        <td>
            <a href="javascript:;" onClick="submit_value(this)">Button</a>
        </td>
 </form>

 <form>
        <td>
            <input id="ip" type="text" value="1">
        </td>
        <td>
          <a href="" class="mySubmitButton">Button</a>
        </td>
 </form>

然后你的 JS 看起来像

$('.mySubmitButton').click(function() {

  var inputBox = $(this).prev(); 
  alert(inputBox.val());
  return false; //This prevents the default function submit . Similar to event.preventDefault
});
于 2012-12-18T05:48:49.020 回答
0

JQuery 无处不在。您不需要 JQuery。为什么人们会忘记 DOM 对象模型?他几乎以正确的方式制作了一切:

    <head>
        <script>
            function submit_value() {
                alert(document.forms[0].ip.value);
            }
        </script>
    </head>
    <table>
        <tr>
            <form>
                <td>
                    <input name="ip" type="text" value="1">
                </td>
                <td>
                    <a href="javascript:;" onClick="submit_value()">Button</a>
                </td>
            </form>
        </tr>
    </table>

或者您可以添加表单 ID

    <head>
        <script>
            function submit_value() {
                alert(document.forms.formid.ip.value);
            }
        </script>
    </head>
    <table>
        <tr>
            <form id='formid'>
                <td>
                    <input name="ip" type="text" value="1">
                </td>
                <td>
                    <a href="javascript:;" onClick="submit_value()">Button</a>
                </td>
            </form>
        </tr>
    </table>

于 2015-03-28T17:33:55.583 回答
0

我们可以在没有给表单 Id 和没有 JQuery 的情况下做到这一点。有关详细信息,请参阅表单数据。

 function test(frm) {
      const formData = new FormData(frm);
      for (var value of formData.values()) {
          console.log(value);
      }
  }
<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="button" value="Submit" onclick="test(this.form)">
</form> 

于 2020-04-15T16:04:28.320 回答