【问题标题】:Jquery Radio Button On Posts帖子上的 Jquery 单选按钮
【发布时间】:2012-07-20 16:25:04
【问题描述】:

您好,我有一个表格可以发布一些奇怪的数据...

HTML:

<form>
   <input type="radio" name="datatype" value="1"/> <label>Datatype 1</label>
   <input type="radio" name="datatype" value="2"/> <label>Datatype 2</label>
   <button type="submit">Submit</button>
</form>

表格 1:

$('form').submit(function(){
    var dt = $(this).serializeArray();
    $.ajax({
        url: 'post.php',
        data: dt,
        ..................
    })
})

表格 2:

  $('form').submit(function(){
    var opt = $(['input[name=datatype]').val();
    var dt = [{name:'dtype',value: opt }];

    $.ajax({
        url: 'post.php',
        data: dt,
        ..................
    })
})

在 FORM 1 数据类型中正确发布正确的值 1 或 2。在这一部分中,我使用序列化数组。现在奇怪的是,如果您选择数据类型 2,它总是在 FORM 2 上发布值 1。出于某种原因,我需要使用 FORM 2...如果有人能提供帮助,我很高兴。谢谢

【问题讨论】:

    标签: jquery radio-button


    【解决方案1】:

    你应该试试这个:

    $('form').submit(function(){
        var opt = $('input[name=datatype]:checked').val();
        var dt = [{name:'dtype',value: opt }];
    
        $.ajax({
            url: 'post.php',
            data: dt,
            ..................
        })
    })
    

    为什么你的 FORM2 代码总是得到1

    默认情况下,它根据 DOM 中的顺序获取值。由于radiovalue="1" 排在第一位,所以它选择值1,尽管您选择radiovalue="2"


    更正您的代码

    您的$(['input[name=datatype]').val(); 声明是错误的。它应该

    $('input[name=datatype]:checked').val(); 将获得选中的radio 按钮的值。

    您的选择器也可能是:

    $(':radio:checked[name=datatype]').val()
    

    Working sample

    【讨论】:

      【解决方案2】:

      首先,方括号开头给出的错误是无处关闭的。

      对于您的问题,这是因为 DOM 按名称顺序选择元素。由于值 1 首先出现,因此它被选中。因此,您必须添加一个过滤器以选择已选中的过滤器。

      所以,替换,

          var opt = $(['input[name=datatype]').val();
      

          var opt = $('input[name=datatype]:checked').val();
      

      【讨论】:

        猜你喜欢
        • 2013-02-16
        • 2014-12-14
        • 1970-01-01
        • 2013-08-21
        • 2011-02-08
        • 1970-01-01
        • 2020-07-19
        • 1970-01-01
        • 2012-06-28
        相关资源
        最近更新 更多