根据加载时选择的选项设置字段禁用然后更改Jquery

时间:2016-04-12 03:05:36

标签: jquery

当我在这样的选择中选择另一个选项时,我会触发一些jquery:

$(document).ready(function() {
  $("[name=msgType]").change(function(){
   if ($("#text").is(':selected')) { // TYPE TEXT
      $("#msgBody").removeAttr('disabled');
      $("#msgTitle").attr("disabled", "disabled");       
      $("#msgText").attr("disabled", "disabled");
      $("#msgUrl").attr("disabled", "disabled");  
      $("#msgPicUrl").attr("disabled", "disabled"); 
      $("#msgVideoUrl").attr("disabled", "disabled");

   } else if ($("#link").is(':selected')) { // TYPE LINK
      $("#msgBody").attr("disabled", "disabled"); 
      $("#msgTitle").removeAttr('disabled');       
      $("#msgText").removeAttr('disabled');
      $("#msgUrl").removeAttr('disabled'); 
      $("#msgPicUrl").removeAttr('disabled');
      $("#msgVideoUrl").attr("disabled", "disabled");  
   } 
 });
});

这很好用。但是,当我最初加载页面时,我在select中设置了选项,但这显然不会导致“更改”功能发生,因此在我手动更改下拉列表之前,相应的禁用字段不会被禁用。

如何在最初加载页面时为相应的选择选项设置所有已禁用的字段,以及何时再次更改下拉列表?

1 个答案:

答案 0 :(得分:1)

  $("[name=msgType]").change(function(){
   if ($("#text").is(':selected')) { // TYPE TEXT
      $("#msgBody").removeAttr('disabled');
      $("#msgTitle").attr("disabled", "disabled");       
      $("#msgText").attr("disabled", "disabled");
      $("#msgUrl").attr("disabled", "disabled");  
      $("#msgPicUrl").attr("disabled", "disabled"); 
      $("#msgVideoUrl").attr("disabled", "disabled");

   } else if ($("#link").is(':selected')) { // TYPE LINK
      $("#msgBody").attr("disabled", "disabled"); 
      $("#msgTitle").removeAttr('disabled');       
      $("#msgText").removeAttr('disabled');
      $("#msgUrl").removeAttr('disabled'); 
      $("#msgPicUrl").removeAttr('disabled');
      $("#msgVideoUrl").attr("disabled", "disabled");  
   } 
 }).change();//call change event manually on load

要在加载时调用更改事件,您必须手动调用.change()