单选框change事件不生效问题解决

项目中遇到需要用jquery给单选框添加change事件

 第一想到是是使用change事件

$("input[type='radio'][name=''oprGroup'']").change(function(){

 if (this.value != 'handler_pass:通过') {
        alert("111");
     $("#process_review_button").attr("onclick","Com_Submit(document.kmReviewMainForm, 'publishDraft');");    
        alert("222");
        $("textarea[name='fdUsageContent']").val("");
          }else{
         $("textarea[name='fdUsageContent']").val("建议职级(P3-P9,M1-M5):\n评价:");
    }

}); 但测试发现这种方式并不能生效,无法触发change事件

百度了很多回答,大部分都是不对的,浪费了时间。

经测试以下方式是对的

$(document).on("change","[name='oprGroup']",function(){
    if (this.value != 'handler_pass:通过') {
        alert("111");
     $("#process_review_button").attr("onclick","Com_Submit(document.kmReviewMainForm, 'publishDraft');");    
        alert("222");
        $("textarea[name='fdUsageContent']").val("");
          }else{
         $("textarea[name='fdUsageContent']").val("建议职级(P3-P9,M1-M5):\n评价:");
    }
同时 也可以给每个单选添加onchange事件来解决,例如:

按品类 按品牌 按品类&品牌
function selected(obj) {
   if ($(obj).val() == '1') {
      $(".category").show();
      $(".brand").hide();
              $(".category").removeClass("box-right").addClass("box-left");
          } else if ($(obj).val() == '2') {
      $(".category").hide();
      $(".brand").show();
              $(".brand").removeClass("box-right").addClass("box-left");
   }else if($(obj).val() == '3'){
              $(".brand").show();
              $(".category").show();
              $(".brand").removeClass("box-left").addClass("box-right");
              $(".category").addClass("box-left");
   }
} 此种方式相对麻烦一些 但实现效果相同

你可能感兴趣的:(单选框change事件不生效问题解决)