2012-04-16 4 views
0

これがなぜ機能しないのか分かりません。誰かが刺す気に?他の値に基づいてドロップダウンが変化しないのはなぜですか?

私は以下のフォームを持っています。ユーザーが#frmcommentsで「無効」オプションを選択した場合、#frmstatusをprivateのオプション値に変更します。

<label for="type">Comments:</label> 
<select class="sort-select" id="frmcomments" name="frmcomments"> 
    <option value="enabled">Allow Comments</option> 
    <option value="disabled">No Comments</option> 
</select> 



<label for="type">Status:</label> 
<select class="sort-select" id="frmstatus" name="frmstatus"> 
    <option value="public">Anyone can see</option> 
    <option value="private">Only I can see</option> 
</select> 

次のjqueryを使用していますが、失敗していますか?

$('#frmcomments').change(function() { 
    var thistype = $(this).find(":selected").val(); 

    if(thistype=="disabled") { 
     $("#frmstatus").val("private"); 
    } 

    return false; 
}); 
+1

作品を試してみてください。http://jsfiddle.net/HzrKT/ –

+0

ミーだけでなく、 http://jsfiddle.net/UnkBV/1/ – veeTrain

+0

奇妙な。送信時にフォームの値をチェックすると、プライベートとして値が表示されますが、ディスプレイは変更されません。 – Mike

答えて

1

thistypeの値を確認してください。 selectval()に電話できる必要があります。.find(":selected")に電話して、選択したリスト項目を取得する必要はありません。

+0

情報については、次のスニペットを参照してください。http://jsfiddle.net/22zsW/ – Ropstah

+0

出力thistypeに警告をスローすると、無効になります。 .find( ":selected")ピースを削除した場合と同じです。 – Mike

+0

@Mike:スニペットを参照してください... – Ropstah

0
$('#frmcomments').change(function() { 
    var thistype = $(this).val(); 

    if(thistype=="disabled") { 
     $("#frmstatus").val("private").change(); 
    } 
    return false; 
}); 
0
var thistype = $(this).find(":selected").val(); 

私にとって、この

var thistype = $(this).val(); 
関連する問題