为什么我的禁用/启用复选框在JQuery中不起作用?

时间:2017-12-27 16:48:57

标签: jquery

我不知道为什么这段代码不起作用。请尝试在你的答案中具体说明,因为它一定是非常愚蠢的东西。

// reducer.ts
export const INITIAL_APP_STATE = {
    dynamicComponent: {},
    fieldType: {},
    formCreate: {},
    formList: {},
    formTemplates: {},
    formPreview: {},
    formView: {}
};

export function getInitialState(): any {
    return INITIAL_APP_STATE;
}

// app.module.ts
imports: [
    // Version 1
    StoreModule.forRoot(Object.assign(reducerToken, reducers), { initialState: getInitialState }),
    // Version 2
    StoreModule.forRoot(reducerToken, { initialState: getInitialState }),
    // Version 3
    StoreModule.forRoot(reducers, { initialState: getInitialState }),
]
$("#cagree").on("change", function(e){
		  if($("#chbx").attr("checked")){
		    $("#submitbtn").button("enable");
		  } else {
		    $("#submitbtn").button("disable");
		  }
		  
		});

1 个答案:

答案 0 :(得分:1)

1. $("#cagree")需要$(".cagree")

2.使用.is(":checked")检查是否选中了复选框

3.而不是$("#submitbtn").button("enable")$("#submitbtn").prop('disabled', false);,反之亦然

工作代码段: -

$(".cagree").on("change", function(e){ // it's class so use .
  if($(this).is(":checked")){ // use $(this) for current-object
    $("#submitbtn").prop('disabled', false); // it's property so use .prop
  }else{
    $("#submitbtn").prop('disabled', true);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!DOCTYPE html> 
<html> 
  <head> 
    <title>My Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

  </head> 
  <body> 
    <div data-role="page">

      <div data-role="content">	
        <label><input type="checkbox" name="checkbox-0" id="chbx" class="cagree"> I agree </label>
        <input type="button" value="Submit" id="submitbtn" class="submit" disabled/>
      </div><!-- /content -->

    </div><!-- /page -->

  </body>
</html>

注意: -

enabledisable是属性,因此请使用.prop()进行设置。

</input>无效,请将其删除。