这是我的代码:JS PART
$(document).ready(function(){
$("#parent").hide();
$(".parentcheck").click(function(){
if($(this).val()==="1")
{
$("#parent").show();
$('#switch').attr('disabled', '');
}
else {
$("#parent").hide();
$('#switch').attr('disabled', 'disabled');
}
});
$("#switch").change(function () {
var selectedSwitch = $("#switch").val();
var parentcheck = $(".parentcheck:checked").val();
if (selectedSwitch!='' && selectedSwitch!='0'){
$.ajax({
type: "POST",
url : "optionsgenerator.php",
data: {menu: selectedSwitch},
success: function(result, status, xResponse){
if (result!=''){
if($('#parentcheck').attr('checked')){
$("#parent").hide();
}
else {
$("#parent").html(result);
$("#parent").show();
}
}
else{
alert('Error occured.');
$("#parent").hide();
}
},
error: function(e){
alert(e);
}
});
}
else
$("#parent").hide();
});
});
和HTML标记
<select name="switch" id="switch">
<option value="" selected="selected">Select one...</option>
<option value="1">a</option>
<option value="2">b</option>
<option value="0">no one</option>
</select>
<div class="parent">
<input type="radio" class="parentcheck" name="parentcheck" value="0"/>
<input type="radio" class="parentcheck" name="parentcheck" value="1"/>
<select name="parent" id="parent"></select>
</div>
问题是
如果类"parentcheck"
的单选按钮的值 1 ,我的js显示selectbox而不检查是否有要显示的内容(在我的情况下,从后端php代码返回的选项)或不
我正在努力实现以下
如果类"parentcheck"
的单选按钮的值 1 ,则show
selectbox #parent
仅在ajax已返回的情况下启用 selectbox #switch
答案 0 :(得分:2)
您正在尝试通过id获取parentcheck,但是parentcheck是一个类:
var parentcheck = $("#parentcheck:checked").val();
尝试将其更改为
var parentcheck = $(".parentcheck:checked").val();
编辑: 对于取消选择:
if($(this).val()==="1")
{
if ($("#parent option").length > 0) {
$("#parent").show();
}
$('#switch').attr('disabled', '');
}
else {
$("#parent").hide().find('option:selected').removeAttr('selected');
$('#switch').attr('disabled', 'disabled').find('option:selected').removeAttr('selected');
}
答案 1 :(得分:1)
解决方案:
1)
if(selectedSwitch != '' && selectedSwitch !=0)
2)
$(".parentcheck").click(function(){
if($(this).val() == "1")
{
$('#parent).show();
$('#switch').attr('disabled', '');
}
else {
$('#parent').val('');
$('#parent').hide();
$('#switch').val("Select one...");
$('#switch').attr('disabled', 'disabled');
}
});
3)在AJAX函数中设置一个布尔标志,然后在点击监听器中只启用selectbox if(flag)。