我已经通过很多论坛进行了切换,并使用了建议的方式来做到这一点,但似乎没有用。所以我正在寻找第二双眼睛来帮助我发现我做错了什么。
这是一个生成表单的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>
答案 0 :(得分:1)
你应该使用: var chk = $(this).find(':selected')。val();
答案 1 :(得分:1)
由于某种原因,change
事件绑定不成功。尝试fiddle您的代码时,它无效。
然后我刚刚将select[name=School[]]
更改为select[name='School[]']
(观看单引号),它开始于work。
我不知道为什么,这引用了使选择器有效。因为,在某些地方,我读过没有引号的属性选择器应该可以正常工作。
无论如何,我今天也学到了一些东西。
感谢。
答案 2 :(得分: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 example 强>
答案 3 :(得分:0)
您好,首先我想感谢Robertpurpose为您的代码,当然还有其他人。我按原样尝试了你的代码,但没有发生任何事情...所以我检查我的jquery版本或其他脚本是不是问题......但是没有什么......然后我玩了,发现它有效,如果我删除select语句的[]如下: 选择[名称= '学校']
希望这有助于其他人...