2012-04-16 3 views
0

Я не уверен, почему это не работает. Кто-нибудь хочет взять удар?Почему не сбрасывается изменение, основанное на другом значении?

У меня есть форму с ниже. Когда пользователь выбирает параметр «disabled» в #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

Me, а также; http://jsfiddle.net/UnkBV/1/ – veeTrain

+0

Bizarre. Если я проверю значения формы при отправке, это показывает значение как личное - но дисплей не изменяется. – Mike

ответ

1

Проверьте ценность thistype. Вы должны уметь звонить val() на select, и вам не нужно звонить .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(); 
Смежные вопросы