如何在 jQuery 中选择特定的表单元素?

发布于 2024-10-06 07:30:31 字数 598 浏览 3 评论 0原文

我有两个这样的表单:

<form id='form1' name='form1'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

<form id='form2' name='form2'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

现在我想在 form2name 字段中插入文本。我正在使用 以下 jQuery 代码,但它填充了 form1< 的 name 字段/强>。

$("#name").val('Hello World!');

那么如何只选择特定的表单元素呢?

I have two form like this:

<form id='form1' name='form1'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

<form id='form2' name='form2'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

Now I want to insert text in name field of form2. I am using following jQuery code but it fill name field of form1.

$("#name").val('Hello World!');

So how to select specific form elements only?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

暮色兮凉城 2024-10-13 07:30:31

两次使用相同的 ID 是无效的,这就是为什么 #name 只能找到第一个 ID。

您可以尝试:

$("#form2 input").val('Hello World!');

或者,

$("#form2 input[name=name]").val('Hello World!');

如果您遇到无效页面并想要选择所有 #name,您可以使用 id 上的属性选择器:

$("input[id=name]").val('Hello World!');

It isn't valid to have the same ID twice, that's why #name only finds the first one.

You can try:

$("#form2 input").val('Hello World!');

Or,

$("#form2 input[name=name]").val('Hello World!');

If you're stuck with an invalid page and want to select all #names, you can use the attribute selector on the id:

$("input[id=name]").val('Hello World!');
ま柒月 2024-10-13 07:30:31

我更喜欢 #form2 的 id 后代选择器,如下所示:

$("#form2 #name").val("Hello World!");

http://api.jquery.com/后代选择器/

I prefer an id descendant selector of your #form2, like this:

$("#form2 #name").val("Hello World!");

http://api.jquery.com/descendant-selector/

今天小雨转甜 2024-10-13 07:30:31

虽然它是无效的 html 但您可以使用选择器上下文来限制您的选择器
在你的情况下,它会像:

$("input[name='name']" , "#form2").val("Hello World! ");

http://api.jquery.com/jquery/#selector-context

although it is invalid html but you can use selector context to limit your selector
in your case it would be like :

$("input[name='name']" , "#form2").val("Hello World! ");

http://api.jquery.com/jquery/#selector-context

紙鸢 2024-10-13 07:30:31

我知道问题是关于设置输入,但以防万一你想设置一个组合框(我在网上搜索它但没有找到任何东西,这个地方似乎是指导其他人的正确地方)

如果你有一个带有以下内容的表单ID属性集(例如frm1)和
你想设置一个特定的组合框,没有设置ID,但设置了名称属性(例如区);然后使用

$("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <form id="frm1">
        <select name="district">
            <option value="" disabled="" selected="" hidden="">Area ...</option>
            <option value="NWFP">NWFP</option>
            <option value="FATA">FATA</option>
        </select>
    </form>

I know the question is about setting a input but just in case if you want to set a combobox then (I search net for it and didn't find anything and this place seems a right place to guide others)

If you had a form with ID attribute set (e.g. frm1) and
you wanted to set a specific specific combobox, with no ID set but name attribute set (e.g. district); then use

$("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <form id="frm1">
        <select name="district">
            <option value="" disabled="" selected="" hidden="">Area ...</option>
            <option value="NWFP">NWFP</option>
            <option value="FATA">FATA</option>
        </select>
    </form>

本宫微胖 2024-10-13 07:30:31
$("#name", '#form2').val("Hello World")
$("#name", '#form2').val("Hello World")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文