【问题标题】:jQuery selecting a forms radio buttonsjQuery选择表单单选按钮
【发布时间】:2025-12-26 20:05:06
【问题描述】:

我有一个表单,我使用这个document.forms["form-0"].answerN[0]; 来选择一个特定的单选按钮,但是我无法使用 jQuery 来做到这一点。

我尝试使用$('forms["form-0"]')$('forms[0]') 获取表单,但没有成功,而且两者都使用长路径工作..

【问题讨论】:

    标签: jquery forms jquery-selectors


    【解决方案1】:

    你可以这样访问(jQuery v1.6)

    $('form > input:radio').prop('id');
    

    DEMO

    更新

    您可以通过nameid 属性访问form,也可以这样

     $('form[name="firstForm"] > input:radio').prop('id');
    

    DEMO

    【讨论】:

    • 感谢演示,但有没有办法将它与表单 ID 或名称一起使用?它尝试了$('form-0 > input:radio').prop('id'); $('forms[0] > input:radio').prop('id'); $('"form-0" > input:radio').prop('id'); 并且没有工作......
    • 显然您可以使用nameid 等形式。查看我的更新答案:)
    • 您也可以通过$("form").eq(0)访问第一个表单
    • 您可以通过索引访问表单$("form").eq(1).find('input:radio').prop('id'); // 将访问第二个表单,因为索引从 0 开始,请参见此处:jsfiddle.net/xkeshav/ZF27B/5
    【解决方案2】:

    试试这样:$("form input:radio")

    如需进一步帮助,请关注this 链接。

    【讨论】:

    • 有没有办法使用表单 ID/名称而不仅仅是 form
    • @IlyaD $("#formId input:radio:") 应该这样做。
    【解决方案3】:

    如果你有这样的表格:

    <form action="" method="post" id="myForm">
      <input type="radio" name="myRadioButton" value="0" class="radio" id="firstRadioButton" /> Value
    </form>
    

    您可以通过 id 选择元素:

    选择单选按钮

    $("#firstRadioButton)
    

    选择表格

    $("#myForm")
    

    或选择所有单选按钮:

    $("#myForm input.radio").each(function(){
      alert($(this).val());
    });
    

    并且不使用 ID:

    HTML:

    <form action="" method="post">
        <input type="radio" value="1" /> Value 1 <br />
        <input type="radio" value="2" /> Value 2 <br />
    </form>
    

    jQuery:

    alert($("form").first().find("input:radio").first().val());
    

    例子:看here

    【讨论】:

    • thanx,这是一个很好的解决方案,使用 ID,但是没有办法在不使用 ID 的情况下缩短 document.forms["form-0"].answerN[0] 吗?似乎所有其他答案都使代码更长...
    【解决方案4】:

    form-0 是表单的名称。你必须写类似的东西

    $('form[name=form-0]') 选择表格。

    要获得单选按钮,您必须进一步移动才能使用儿童

    所以

    $('form[name=form-0]').children('radio[name=answerN]:first-child')

    希望这应该可行

    【讨论】:

    • 你不知道在他的代码中是否会成为孩子或成为后代,所以你应该使用“find()”而不是“children()”$("form[name=' form-0']").find(":radio[name='answerN']")
    • 也写",比如name="form-o"name="answerN"
    【解决方案5】:

    您可以尝试这样做以访问页面中的所有表单:

    $('forms').each(function(id){ 控制台.log(id,$(this)); });

    【讨论】:

      最近更新 更多