0

我在一个页面上有多个表单,其中表单 DOM 对象作为参数传递给 JavaScript 函数,例如:

    <form name="form1" method="post" action="">
      <input id="textfield1" type="text" name="textfield1">
      <input id="textfield2" type="text" name="textfield2">
      <input id="textfield3" type="text" name="textfield3">
      <input name="button" type="button" id="btn" value="Get Info" onClick="getdata(this.form)">
    </form><form name="form2" method="post" action="">
  <input id="textfield1" type="text" name="textfield1">
  <input id="textfield2" type="text" name="textfield2">
  <input id="textfield3" type="text" name="textfield3">
  <input name="button" type="button" id="btn" value="Get Info" onClick="getdata(this.form)">
</form>
<form name="form3" method="post" action="">
  <input id="textfield1" type="text" name="textfield1">
  <input id="textfield2" type="text" name="textfield2">
  <input id="textfield3" type="text" name="textfield3">
  <input name="button" type="button" id="btn" value="Get Info" onClick="getdata(this.form)">
</form>

function getdata(form){
  alert("the value is: " + form.getElementById('textfield1).value);
}

如何使用 jQuery 访问在 getdata(form) 中传递的 DOM 对象?

我已经厌倦了 $(form) 但这似乎只能访问按钮对象,而不是表单中的其他输入。

谢谢你的帮助。

4

3 回答 3

1

$(form)确实应该为您提供对表单的 jQuery 引用,而仅仅form是 DOM 节点本身。演示

但是,对于您想要实现的目标,您最好将 DOM 节点作为上下文传递给您的选择器:

$('#li_address', form).val()

但是,由于您通过 ID 获取元素,因此您不需要上下文 - 因为您只有一个,对吗?但是这里有一个使用 DOM 节点作为上下文的合理演示。

但是,由于您使用的是 jQuery,您可能还想onClick在 jQuery 中切换并处理事件绑定。请注意,我使用.btn假设class="btn"而不是访问所有按钮id="btn"。同样,ID 在整个文档中应该是唯一的。不要偏离这一点。它会咬你。

$('form .btn').click(function() {
    // this = button DOM node
    var form = $(this).closest('form');
    form.submit(); // or whatever
});
于 2013-04-11T11:07:12.110 回答
0

这将返回 form1 的 DOM 元素

$('form[name=form1]').get()

或所有表格

$('form').get()

要访问单个表单元素,您可以访问例如按钮

$('form[name=form1] #btn')
于 2013-04-11T11:07:24.100 回答
0

您可以像这样尝试 getData 函数-

form.fieldName.value
于 2013-04-11T11:15:51.420 回答