2015-01-06 18 views
0

Как можно изменить или изменить значение моего текстового поля в зависимости от параметра, выбранного пользователем? Поскольку с момента, когда я впервые выбираю опцию в Dropdown1, тогда выбирает вариант в Dropdown2, значение будет отображаться в моем текстовом поле, но если я изменю свой выбор на dropdown1, значение в текстовом поле не изменится, если только я не повторно выберите снова на моем Dropdown2.Обновить значение при выборе опции

<select name="menu" id="select1"> 
         <option value="A">A</option> 
         <option value="B">B</option> 
         <option value="C">C</option> 
         <option value="D">D</option> 
       </select> 
       <select name="menu2" id="select2" onchange="changetxt3()"> 
         <option value="1">1</option> 
         <option value="2">2</option> 
       </select> 

       <input type="text" id="txt6"/> 

**jquery** 

    $(document).ready(function(){ 
    $("#select1").change(function(){ 
     if($(event.target).val() == 'A'){ 
       $("#select2").change(function(){ 
        if($(event.target).val() == '1'){ 
         $('#txt6').val('250.00'); 
        }else{ 
         $('#txt6').val('250.00'); 
        } 
       }); 
      }else if($(event.target).val() == 'B'){ 
       $("#select2").change(function(){ 
        if($(event.target).val() == '1'){ 
         $('#txt6').val('50.00'); 
        } else{ 
         $('#txt6').val('50.00'); 
        } 
       }); 
       }else 
       if($(event.target).val() == 'C'){ 
        $("#select2").change(function(){ 
        if($(event.target).val() == '1'){ 
         $('#txt6').val('103.00'); 
        } else{ 
         $('#txt6').val('103.00'); 
        } 
       }); 
      }else 
     { 
      $("#select2").change(function(){ 
        if($(event.target).val() == '1'){ 
         $('#txt6').val('186.00'); 
        } else{ 
         $('#txt6').val('186.00'); 
        } 
       }); 
     } 
    }); 
}); 

ВИДЕТЬ jsfiddle

jsFiddle

+0

Это самый грязный код, который я когда-либо видел. – Shahar

+0

Вам нужно удалить все обработчики изменений из внутренних операторов 'if'. Логика 'if' должна находиться внутри обработчиков, а не обертывать их. Начните все заново. Один обработчик изменений для каждого выбора. Проверьте значение другого выбора непосредственно при возникновении изменения – charlietfl

+0

'event' не определено. Вам нужно использовать 'function (event) {...}'; –

ответ

0

Не принимайте это как оскорбительные, но ваш код довольно злокачественными, поэтому я изменил ему немного немного.

$(function() { 
 
    var val1, val2; 
 
    $("#select1").change(function() { 
 
     switch ($(event.target).val()) 
 
     { 
 
      case 'A': 
 
       val1 = '250.00'; 
 
       val2 = '250.00'; 
 
       break; 
 
      case 'B': 
 
       val1 = '50.00'; 
 
       val2 = '50.00'; 
 
       break; 
 
      case 'C': 
 
       val1 = '103.00'; 
 
       val2 = '103.00'; 
 
       break; 
 
      default: 
 
       val1 = '186.00'; 
 
       val2 = '186.00'; 
 
       break; 
 
     } 
 
     update(); 
 
    }); 
 
    
 
    $("#select2").change(function(event) { 
 
     update(); 
 
    }); 
 
    
 
    function update() 
 
    { 
 
     if ($('#select2').val() == '1') 
 
     { 
 
      $('#txt6').val(val1); 
 
     } else { 
 
      $('#txt6').val(val2); 
 
     } 
 
    } 
 
}); 
 
     
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="menu" id="select1"> 
 
    <option value="A">A</option> 
 
    <option value="B">B</option> 
 
    <option value="C">C</option> 
 
    <option value="D">D</option> 
 
</select> 
 
<select name="menu2" id="select2" onchange="changetxt3()"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
</select> 
 
\t \t \t \t 
 
\t \t \t \t <input type="text" id="txt6"/>

Со всеми замечательными IDE на рынке, или даже что-то же просто, как Notepad ++, я удивлен, что люди не могут даже отступы правильно.

Ничего не было вызвано в исходном коде, который изменил бы значение текстового поля при изменении $('#select1'). Я добавил функцию для вызова в этом случае. Чтобы увидеть что-то в своем текстовом поле при изменении $('#select2'), вам понадобятся val1 и val2. Я не делал их разными, потому что у вас не было исходного кода.