选择特定形式的特定输入字段名称

时间:2013-11-01 13:00:19

标签: javascript jquery forms

我有一些像这样的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更改它的值。

7 个答案:

答案 0 :(得分:1)

// Define the target element
elem = jQuery( 'form[name="second"] input[name="secondText"]' );

// Set the new value
elem.val( 'test' );

答案 1 :(得分:0)

使用jquery:element = $("form[name='second'] input[name='secondText']")
使用js element = document.querySelector("form[name='second'] input[name='secondText']")

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

答案 2 :(得分: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/

答案 3 :(得分:0)

尝试

$("form[name='second'] input[name='secondText']").val("ENTER-YOUR-VALUE");

答案 4 :(得分:0)

您也可以尝试这一行:

$('input[name="elements[174ec04d-a9e1-406a-8b17-36fadf79afdf][0][value]"').mask("999.999.999-99",{placeholder:" "});

答案 5 :(得分:0)

使用纯JS的要点:

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

更新

此选择器将在名为“特殊形式”的表单内返回名为“特殊输入”的输入,否则返回null。

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

选择器过滤器“输入[名称=特殊输入]”将查找名称等于“特殊输入”的所有输入元素: <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过滤器的好/简单文档,如果您知道任何参考,请在此处发布。

答案 6 :(得分:-1)

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

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