如何检查单选按钮的值,如果还有……?

How to check radio buttons values and if else..?

我需要检查单选按钮列表和 select 的值。 不能同时 select 编辑单选按钮和 select 值。

我现在有了这个,但它只有在我 select 单选按钮列表中的第一个单选按钮时才有效。 userdevice 是一个单选按钮列表。而标签就是select.

var isChecked = $('input[name=userdevice]').prop('checked');
    if (isChecked) {
    var userdevice=$('input[name="userdevice"]:checked').val();
    }else{
    var userdevice="";
    }

    var tags=$('select[id=tags]').val()

     if ((userdevice.length > 0) && (tags.length < 1)){
    //if userdevice - a radio button is selected - run this...and this only works if the first radio button is selected...

     }else if((userdevice.length < 1 ) && (tags.length > 0)){
    //if a tag in the select is selected - run this... 

     }else {
    //if both user device and tags are not selected, then run this....
    }

非常感谢任何输入,谢谢!

您需要将 prop('checked'); 更改为:

var isChecked = $('input[name=userdevice]').is(':checked');

我测试了。 isChecked 的结果总是错误的。

完整代码:

var isChecked = $('input[name=userdevice]').is(':checked');
if (isChecked) {
  var userdevice = $('input[name="userdevice"]:checked').val();
} else {
  var userdevice = "";
}
var tags = $('select[id=tags]').val()
if ((userdevice.length > 0) && (tags.length < 1)) {
  //if userdevice - a radio button is selected - run this...and this only works if the first radio button is selected...
} else if ((userdevice.length < 1) && (tags.length > 0)) {
  //if a tag in the select is selected - run this... 
} else {
  //if both user device and tags are not selected, then run this....
}

通过查看您的代码示例,您似乎正在使用 val().length 检查是否选择了特定项目?在我看来(如果这是你想要的,)直接使用 selectedchecked 属性会更好。

只是一个想法

  var hasSelected = 
  $('input[name=userdevice]:checked, #tags option:selected')  // if has any selection
  .map(function(index,elm){
     $(elm).is('input') ? /* if only radio button selected */  : null ; 
     $(elm).is('option')? /* if only select option selected */ : null ; 
     return $(this);                                                   
  }).get().length;

  (hasSelected < 1) ? /* if NO selection */ : null ;