JQuery изменить входной результат при выборе с помощью выбора

0

в настоящее время, когда я выбираю #choice He> #He Boy> #outcome is "Boy", после этого, когда я изменяю #choice для нее, #outcome все еще "Boy". могу ли я знать, есть ли способ, когда при переключении #choice значение #outout будет изменено на.

<select id="choice">
    <option value="He" selected="selected">He</option>
    <option value="She">She</option>
</select>
<p>
    <select id="He">
        <option value="choose" selected="selected" Disabled Selected value="">Choose</option>
        <option value="Boy">Boy</option>
        <option value="Man">Man</option>
    </select>

    <select id="She">
        <option value="choose" selected="selected" Disabled Selected value="">Choose</option>
        <option value="Girl">Girl</option>
    <option value="Woman">Woman</option>
    </select>
</p>
<input type="text" id="outcome" readonly>

Скрипт Jquery:

$(function() {
    $('#He').show(); 
    $('#choice').change(function(){
        if($('#choice').val() == 'He') {
            $('#He').show().prop({disabled: false}); 
        } 
        else {
            $('#He').hide().prop({disabled: true}); 
        } 
    });

    $('#She').hide(); 
    $('#choice').change(function(){
        if($('#choice').val() == 'She') {
            $('#She').show().prop({disabled: false }); 
        } 
        else {
            $('#She').hide().prop({disabled: true }); 
        } 
    });
});

$( "#He" ).change(function() {
    var str = "";
    $( this ).each(function() {
         $(str += $( this ).val()).show();
    });
    $( "#outcome" ).val( str );
  })
  .trigger( "change" );

$( "#She" ).change(function() {
    var str = "";
    $( this ).each(function() {
         $(str += $( this ).val()).show();
    });
    $( "#outcome" ).val( str );
  })
  .trigger( "change" );
Теги:
events

1 ответ

0
Лучший ответ

Вы имеете в виду что-то вроде

$(function () {
    $('#choice').change(function () {
        var he = $(this).val() == 'He';
        $('#He').toggle(he).prop({
            disabled: !he
        });
        $('#She').toggle(!he).prop({
            disabled: he
        });
        $('#' + (he ? 'He' : 'She')).change()
    }).change();

    $("#He, #She").change(function () {
        $("#outcome").val($(this).val());
    });
});

Демо: скрипка

  • 0
    Да!! круто, спасибо за вашу помощь. Я новичок в jquery. играл в нее в течение нескольких дней и до сих пор возникают проблемы ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню