古い教材でファンクション関数をアロー関数に変更しながら勉強中、
変なところでずっと詰まったのでメモ(--;)
#起ったこと
記述は合っているのにdisabled属性が削除されなかった
index.html
<form action="check.html" method="post">
<dl>
<dt>お名前<em>(必須)</em></dt>
<dd><input type="text" name="name" id="name"></dd>
<dt>性別</dt>
<dd>
<input type="radio" name="gender" value="男性" id="gender_man">
<label for="gender_man">男性</label>
<input type="radio" name="gender" value="女性" id="gender_woman">
<label for="gender_woman">女性</label>
</dd>
<dt>年齢</dt>
<dd>
<select name="age">
<option value="選択してください">選択してください</option>
<option value="10代">10代</option>
<option value="20代">20代</option>
<option value="30代">30代</option>
<option value="40代以上">40代以上</option>
</select>
</dd>
<dd>好きなお酒:<input type="text" id="like"></dd>
<dt>スキル</dt>
<dd>
<input type="checkbox" name="html" value="XHTML" id="html">
<label for="html">HTML</label>
<input type="checkbox" name="css" value="CSS" id="css">
<label for="css">CSS</label>
<input type="checkbox" name="javascript" value="JavaScript" id="javascript">
<label for="javascript">JavaScript</label>
<input type="checkbox" name="php" value="PHP" id="php">
<label for="php">PHP</label>
</dd>
<dt>コメント</dt>
<dd>
<textarea name="comment"></textarea>
</dd>
</dl>
<input type="submit" value="送信">
</form>
text/javascript
$(()=>{
$('select[name="age"]').change((e)=>{
$('#like').prop('disabled');
if($(e.currentTarget).val() == '10代'){
$('#like').prop('disabled','disabled');
}else{
$('#like').prop('disabled');
}
});
});
#結論
古いjqueryの場合は空白で削除できたが、今はremoveAttr()で削除しないと消えないらしい
これでちゃんと動作した
text/javascript
$(()=>{
$('select[name="age"]').change((e)=>{
$('#like').removeProp('disabled');
if($(e.currentTarget).val() == '10代'){
$('#like').prop('disabled','disabled');
}else{
$('#like').prop('disabled');
}
});
});
#参考