3

FAQの例に従って、jqueryを使用してフォーム要素を無効にしようとしています

これが私のこれまでの試みです。

<script src="jquery-1.8.2.js"></script>
<form name="myForm" action ="process.php" method ="post" >
<p>Room type:<br />
<input type="radio" name="roomtype" value="mdorm" onClick="$('#roomnumber').attr('disabled','disabled')">Mixed Dorm<br>
<input type="radio" name="roomtype" value="fdorm" onClick="$('#roomnumber').attr('disabled','disabled')">Female Dorm<br>
<input type="radio" name="roomtype" value="room">Private Room<br>
</p>
<p>Room number<br />
<select name="roomnumber">
        <option value="1">1</option>
        <option value="2">2</option>
</select>

ただし、ラジオ ボタンをクリックしても、ドロップダウン リストが無効になることはありません。私は基本的にその例に従ったので、ここでどこが間違っているのかわかりません。

4

3 に答える 3

1

ID セレクターを使用していますが、select 要素に ID 属性がありません:

<select id="roomnumber" name="roomnumber">

jQuery 1.6 以降、フォーム要素の有効化/無効化 (または他のプロパティの変更) には、メソッドpropの代わりにattrメソッドを使用する必要があります。マークアップを次のように変更します。

<p>Room type:<br />
   <input type="radio" name="roomtype" value="mdorm">Mixed Dorm<br>
   <input type="radio" name="roomtype" value="fdorm">Female Dorm<br>
   <input type="radio" name="roomtype" value="room">Private Room<br>
</p>

そして、次のようにコーディングできます。

$(function(){ // document ready handler
    $('input[name="roomtype"]').change(function(){ // listen to the change event
        // disable the select element if value of radio group is not 'room'
        $('#roomnumber').prop('disabled', this.value !== 'room')
    })
})

http://jsfiddle.net/Er8zX/

于 2012-11-13T05:44:13.123 に答える
0
<select name="roomnumber" id="roomnumber"> 

多分?

于 2012-11-13T05:44:17.967 に答える
0

jquery は id セレクターを使用していますが、id 属性がありません。 <select id="roomnumber">助けるべき

于 2012-11-13T05:44:58.777 に答える