我需要检查单选按钮列表和选择列表的值。 无法同时选择单选按钮和选择值。
我现在有这个,但它只有在我选择单选按钮列表中的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....
}
任何输入都非常感谢,谢谢!
答案 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
来检查是否选择了特定项目?在我看来(如果这就是你想要的),直接使用selected
和checked
属性会更好。
只是一个想法
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 ;