1

我已经切换了很多论坛并使用了建议的方法,但它似乎不起作用。所以我正在寻找第二双眼睛来帮助我发现我做错了什么。

这是一个生成表单的 cms,我只是在编写一个脚本来完成其余的工作。根据用于 jQuery 的 cms,我可以互换名称和 id。下面将显示我的 jQuery 代码,然后是我要操作的部分。表单已经禁用了文本框,只是在选择选项后不会重新启用它。

<script type="text/javascript">  
  $(document).ready(function() 
  {
    $("input:text[name=Other]").attr("disabled", true);
      $("select[name=School[]]").change(function() 
      {
      var chk= $(this).val();
        if (chk == 'Other') 
        {
          $("input:text[name=Other]").attr("disabled", false);
        }
      });
  });
</script>

<form id="ouforms" name="ouforms" method="post" class="ldpforms">    
  <select name="School[]">
    <option value="PleaseSelect" checked="checked">(Please Select)</option>
    <option value="BeachPublicSchools">Beach Public Schools</option>
    <option value="BelfieldPublicSchools">Belfield Public Schools</option>
    <option value="BillingsCountyPublicSchools">Billings County Public Schools</option>
    <option value="BowmanCountyPublicSchools">Bowman County Public Schools</option>
    <option value="DakotaHorizonYouthCenter">Dakota Horizon Youth Center</option>
    <option value="DickinsonAdultLearningCenter">Dickinson Adult Learning Center</option>
    <option value="DickinsonCatholicSchools">Dickinson Catholic Schools</option>
    <option value="DickinsonStateUniversityStudents">Dickinson State University Students</option>
    <option value="EarlyChildhoodLeft">Early Childhood Left</option>
    <option value="GlenUllinPublicSchools">Glen Ullin Public Schools</option>
    <option value="HallidayPublicSchools">Halliday Public Schools</option>
    <option value="HebronPublicSchools">Hebron Public Schools</option>
    <option value="HettingerPublicSchools">Hettinger Public Schools</option>
    <option value="HopeChristianAcademy">Hope Christian Academy</option>
    <option value="KilldeerPublicSchools">Killdeer Public Schools</option>
    <option value="LoneTreeGolvaPublicSchools">Lone Tree (Golva) Public Schools</option>
    <option value="MottRegentPublicSchools">Mott/Regent Public Schools</option>
    <option value="NewEnglandPublicSchools">New England Public Schools</option>
    <option value="RichardtonTaylorPublicSchools">Richardton  Taylor Public Schools</option>
    <option value="ScrantonPublicSchools">Scranton Public Schools</option>
    <option value="SouthHeartPublicSchools">SouthHeart Public Schools</option>
    <option value="SWCHS">SWCHS</option>
    <option value="TwinButtesPublicSchools">Twin Buttes Public Schools</option>
    <option value="WestRiverSpecialServices">West River Special Services</option>
    <option value="Other">Other</option>
  </select>
  <br/>
  <label for="Other">Other: </label>
  <input type="text" name="Other" value=""/>
</form>
4

4 回答 4

1

你应该使用: var chk= $(this).find(':selected').val();

于 2012-05-03T16:56:36.087 回答
1

由于某种原因,change事件绑定不成功。当试图摆弄你的代码时,它不起作用。

然后我只是改为select[name=School[]]select[name='School[]']观看单引号),它开始工作

我不知道为什么,这个引号使选择器有效。因为,在某处我读到没有引号的属性选择器应该可以正常工作。

不管怎样,我今天也学到了一些东西。

谢谢。

于 2012-05-03T17:21:37.777 回答
0

这个怎么样:

$("input:text[name=Other]").attr("disabled", true);
$('select[name="School[]"]').change(function() {
    $("input:text[name=Other]").attr("disabled", ($(this).val() == 'Other') ? false : true);
});​

这将根据是否选择“其他”选项来更改文本输入的禁用属性。

jsFiddle 示例

于 2012-05-03T16:58:31.373 回答
0

您好,首先我要感谢 Robert purpose 的代码,当然还有其他人。我按原样尝试了您的代码,但什么也没发生...所以我检查了我的 jquery 版本或其他脚本是否有问题...但又没有...然后我玩了,发现如果我可以正常工作删除select语句的[]...如下:select[name='School']

希望这对其他人有帮助...

于 2012-12-30T06:22:58.997 回答