Javascript 如何根据select id和radio name更改文本

Javascript 如何根据select id和radio name更改文本,javascript,jquery,Javascript,Jquery,我在这里有点迷路了。 如果用户在“数据类”为“假”的“国家”中选择选项,并将无线电“值”选择为“业务”,我试图将id#total的内容更改为“不合格”。因此,如果select为False且radio为business,则将#total更改为not Qualified $(文档).ready(函数(){ $('.countries').change(函数(){ var self=$(this.find('option:selected')) $('input:radio[name=“servic

我在这里有点迷路了。 如果用户在“数据类”为“假”的“国家”中选择选项,并将无线电“值”选择为“业务”,我试图将id#total的内容更改为“不合格”。因此,如果select为False且radio为business,则将#total更改为not Qualified

$(文档).ready(函数(){
$('.countries').change(函数(){
var self=$(this.find('option:selected'))
$('input:radio[name=“service”]”)。更改(
函数(){
if($(this.val()='Business'和&self.attr(“数据类”)=='False')){
返回$('#total')。文本('不合格')
}
}
).change()
}).change()
})

澳大利亚
美国
德国


节约 生意 弗斯特
总价格是

我相信你的代码确实有效。您认为不是的原因可能是您没有重置标签文本。请参阅下面我的代码片段。我刚刚在您的内部if语句中添加了一个“else”条件

$(文档).ready(函数(){
$('.countries').change(函数(){
var self=$(this.find('option:selected'))
$('input:radio[name=“service”]”)。更改(
函数(){
if($(this.val()='Business'和&self.attr(“数据类”)=='False')){
$('总计').text('不合格')
}
否则{
$('总计').text('合格')
}
}
).change()
}).change()
})

澳大利亚
美国
德国
总价为

  • 有两个单独的变更事件
  • 检查值并进行比较
  • $(文档).ready(函数(){
    $('.countries').change(函数(){
    var self=$(this.find('option:selected');
    var inputvalue=$('input:radio[name=“service”]:checked').val();
    if(inputvalue=='Business'&&self.attr(“数据类”)=='False'){
    $('总计').text('不合格')
    }否则{
    $('总计').text('合格')
    }
    }).change()
    $('input:radio[name=“service”]”)。更改(函数(){
    var self=$('.countries')。查找('option:selected');
    var inputvalue=$('input:radio[name=“service”]:checked').val();
    if(inputvalue=='Business'&&self.attr(“数据类”)=='False'){
    $('总计').text('不合格')
    }否则{
    $('总计').text('合格')
    }
    }).change()
    })
    
    澳大利亚
    美国
    德国
    节约
    生意
    弗斯特
    
    总价为

    请勿在更改处理程序中定义您的无线电更改处理程序。每当后者发生变化时,您将向窗体中添加一个新的事件处理程序。这将导致不必要的代码重复,因为两个事件处理程序几乎相同。@cMillion几乎相同,但不相同。@cMillionidentical@guradio它可以很容易地合并成一个应用于两个元素的单一处理程序,完全没有重复。如果用户先选择单选选项,然后选择国家,#总id没有改变。所以我想正确的方法是有两个独立的变化事件。但是非常感谢你的回答