如何检查单选按钮值以及是否..?

时间:2016-03-16 07:54:27

标签: jquery radiobuttonlist

我需要检查单选按钮列表和选择列表的值。 无法同时选择单选按钮和选择值。

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

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....
    }

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

2 个答案:

答案 0 :(得分:1)

您需要将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....
}

答案 1 :(得分:0)

通过查看您的代码示例,您似乎正在使用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 ;