JQuery仅从单选按钮获取第一个值

时间:2011-11-28 15:26:37

标签: jquery html

我有这个HTML

<div>
    <input type="radio" name="erp_report_type" value="customerinvoice" required>
    <label for="">Customer Invoice</label>
    <input type="radio" name="erp_report_type" value="packinglist">
    <label for="">Packing List</label>
    <input type="radio" name="erp_report_type" value="performainvoice">
    <label for="">Performa Invoice</label>
    <input type="radio" name="erp_report_type" value="commercialinvoice">
    <label for="">Commercial Invoice</label>    
</div>
<div>
    <input type="radio" name="erp_productformat" value="description">
    <label for="">Description</label>
    <input type="radio" name="erp_productformat" value="picture">
    <label for="">Picture</label>
    <input type="radio" name="erp_productformat" value="descriptionpicture">
    <label for="">Description &amp; Picture</label>
</div>

我想根据erp_productformat更改事件从erp_report_type获取值。这是我正在使用的jQuery。

$("input[name='erp_report_type']").change(function() {
    var type = $(this).val();
    var productFormat = $("input[name='erp_productformat']").val(); 
    if( type == 'customerinvoice') {

    } else if(type == 'packinglist') {

    } else if(type == 'performainvoice') {

    } else if(type == 'commercialinvoice') {

    }
});

问题是变量productFormat只保留第一个值,description如果检查另外两个字段,它不会获取另一个值。

我仍然是jQuery或JS的菜鸟。我哪里错了?

3 个答案:

答案 0 :(得分:1)

尝试更改为:

var productFormat = $("input[name='erp_productformat']").filter(':checked').val();

这将从'erp_productformat'输入组返回检查值,然后返回值。

答案 1 :(得分:0)

试试这个。

$("input[name='erp_productformat']").each(function(){
    var productFormat = $(this).val()
    if( type == 'customerinvoice') {
    } else if(type == 'packinglist') {
    } else if(type == 'performainvoice') {
    } else if(type == 'commercialinvoice') {
    }
})

答案 2 :(得分:0)

尝试

each(function() {

而不是

change(function() {