7

我有一些这样的html代码

<form name="first"><input name="firstText" type="text" value="General" /> 
<input name="secondText" type="text" value="General" /> 
<input name="ThirdText" type="text" value="General" /> 
<input name="FourthText" type="text" value="General" /> 
<input name="FifthText" type="text" value="General" />
</form>

<form name="second"><input name="firstText" type="text" value="General" /> 
<input name="secondText" type="text" value="General" /> 
<input name="ThirdText" type="text" value="General" /> 
<input name="FourthText" type="text" value="General" /> 
<input name="FifthText" type="text" value="General" />
</form>

我想使用 jquery 或 javascript 选择表单“second”的“secondText”,并且我想使用 jquery 更改它的值。

4

7 回答 7

9

使用 jQuery:

var element = $("form[name='second'] input[name='secondText']");

使用香草 JS:

var element = document.querySelector("form[name='second'] input[name='secondText']");

更改值:element.val(value)element.value = value,具体取决于您使用的内容。

于 2013-11-01T13:02:51.423 回答
2
// Define the target element
elem = jQuery( 'form[name="second"] input[name="secondText"]' );

// Set the new value
elem.val( 'test' );
于 2013-11-01T13:53:09.227 回答
2

纯 JS 的要点:

document.querySelector('form[name=particular-form] input[name=particular-input]')

更新:

如果存在,此选择器将在名为“particular-form”的表单中返回名为“particular-input”的输入,否则返回 null。

选择器过滤器“form[name=particular-form]”将查找名称等于“particular-form”的所有表单: <form name="particular-form">

选择器过滤器“input[name=particular-input]”将查找名称等于“particular-input”的所有输入元素: <input name="particular-input">

将两个过滤器与空格结合起来,我的意思是:

"form[name=particular-name] input[name=particular-input]"

我们要求querySelector():嘿,找到所有名称等于“特定输入”的输入嵌套在所有名称等于“特定形式”的表单中。

考虑:

<form name="particular-form">
  <input name="generic-input">
  <input name="particular-input">
</form>
<form name="another-form">
  <input name="particular-input">
</form>
<script>
  document.querySelector('form[name=particular-form] input[name=particular-input]').style.background = "#f00"
</script>

此代码将仅更改第二个输入的背景颜色,无论第三个输入是否具有相同的名称。这是因为我们只选择嵌套在名为“特定形式”的表单中的名为“特定输入”的输入

我希望现在更清楚了。

;)

顺便说一句,不幸的是,我没有找到关于 querySelector 过滤器的好的/简单的文档,如果您知道任何参考,请在此处发布。

于 2019-03-20T17:57:29.240 回答
0

你可以这样做:

jQuery

$("form[name='second'] input[name='secondText']").val("yourNewValue");

演示:http: //jsfiddle.net/YLgcC/

或者:

本机 Javascript

旧浏览器:

var myInput = [];
myInput = document.getElementsByTagName("input");

for (var i = 0; i < myInput.length; i++) {
    if (myInput[i].parentNode.name === "second" &&
       myInput[i].name === "secondText") {
        myInput[i].value = "yourNewValue";
    }
}

演示:http: //jsfiddle.net/YLgcC/1/

新浏览器:

document.querySelector("form[name='second'] input[name='secondText']").value = "yourNewValue";

演示:http: //jsfiddle.net/YLgcC/2/

于 2013-11-01T13:02:51.437 回答
0

尝试

$("form[name='second'] input[name='secondText']").val("ENTER-YOUR-VALUE");
于 2013-11-01T13:03:01.440 回答
0

你也可以试试这条线:

$('input[name="elements[174ec04d-a9e1-406a-8b17-36fadf79afdf][0][value]"').mask("999.999.999-99",{placeholder:" "});
于 2017-04-19T20:31:21.370 回答
-1

两种形式的添加按钮。在 Button上使用 jquery 的功能click查找最近的表单。closest()然后使用find()(jquery 函数)获取所有输入值。closest()在 dom 树中向上搜索,find()在 dom 树中向下搜索。在这里阅读

另一种方法是使用sibling()(jquery 函数)。在按钮上click获取同级输入字段值。

于 2019-11-21T05:37:26.747 回答