我们如何改进以下if-else
代码:
$(".rdo_confirm").change(function(){
if($(this).val() == "Y") {
$("#btn_save").attr("disabled",false);
} else {
$("#btn_save").attr("disabled",true);
}
});
答案 0 :(得分:12)
您可以直接使用检查值,因为它返回一个布尔值
$(".rdo_confirm").on('change', function(){
$("#btn_save").prop("disabled", this.value !== "Y");
});
对$(this).val() == "Y"
的检查会返回true
或false
如果支票返回false
,您似乎想要传递true
,这意味着您只是否定支票。
使用原生javascript,结果就像this.value !== "Y"
由于disabled
是一个属性,您还想使用prop()
答案 1 :(得分:1)
您可以将此条件代码压缩为1行代码,分为两种方式,看看:
使用三元运算符:
$(".rdo_confirm").change(function(){
$(this).val() == "Y")? $("#btn_save").attr("disabled",false):$("#btn_save").attr("disabled",true);
});
或强>
使用简单条件:
$(".rdo_confirm").change(function(){
var cond=(this.value !== "Y");
$(this).val() == "Y")? $("#btn_save").attr("disabled",cond);
答案 2 :(得分:0)
$(".rdo_confirm").on('change',function(){
$("#btn_save").prop("disabled",!($(this).val()=="Y"));
});
$("#btn_save").on('click',function(){
alert("test");
});
span{
padding-right:20px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="rdo_confirm" type="radio" name="rdo_confirm" value="Y"/><span>Yes</span>
<input class="rdo_confirm" type="radio" name="rdo_confirm" value="N"/><span>No</span>
<input id="btn_save" type="button" value="Click"/>