0

我在从组合框中选择值时在文本框中显示值。我需要在文本框中进一步使用这些值。我不知道如何在我的三个结果文本框中单击组合框来显示结果。

$options = array(
        '0' => array(
            'title' => '-- Select',
            'value1' => '',
            'value2' => '',     
        ),
        '1' => array(
            'title' => 'A',
            'value1' => '300',
            'value2' => '600',
        ),
        '2' => array(
            'title' => 'B',
            'value1' => '1800',
            'value2' => '900',          
        ),
    );

    if (isset($_GET['option']) && isset($options[$_GET['option']])) {
        echo json_encode($options[$_GET['option']]);
        exit;
    }


?>
<select name="combo" id="combo" onchange="getText66()" onblur="getText661()">
<?php

    foreach($options as $key_value => $option) {
        printf('<option value="%s">%s</option>', $key_value, $option['title']);
    }
?>

从文本框中选择值并显示在文本框中的编码

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">

    $(function(){
        $('#combo').change(function(){
            $.getJSON("?", {
                option : $(this).val()
            }, function (data) {
                $('#textboxB').val(data.value1);
                $('#textboxD').val(data.value1);
                $('#textboxE').val(data.value1);
                $('#textboxC').val(data.value2);
            });
        });
    });

</script>

对从文本框中获取的值执行一些计算的编码

<script>
 function getText66(){
      var in32=document.getElementById('textboxB').value;
      var in332=document.getElementById('in33').value;
      var in3332=document.getElementById('in333').value;
      var in134=(parseFloat(in32)*parseFloat(in332))+parseFloat(in3332); 
      document.getElementById('in134').value=in134.toFixed(2);
   }
    function getText661(){
      var in321=document.getElementById('textboxD').value;
      var in3321=document.getElementById('in331').value;
      var in33321=document.getElementById('in3331').value;
      var in1341=(parseFloat(in321)*parseFloat(in3321))-parseFloat(in33321); 
      document.getElementById('in1341').value=in1341.toFixed(2);
   }
    function getText662(){
      var in322=document.getElementById('textboxE').value;
      var in3322=document.getElementById('in332').value;
      var in33322=document.getElementById('in3332').value;
      var in1342=(parseFloat(in322)*parseFloat(in3322))-parseFloat(in33322); 
      document.getElementById('in1342').value=in1342.toFixed(2);
   }
   </script>
   <?php echo "winter" ?>
<input type="text" name="text1" value="0.89" id="in33" />
<input type="text" name="text2" value="29"  id="in333"/>
<input type="text" name="text3"  id="in134"/>
   <?php echo "Summer" ?>
<input type="text" name="text11" value="0.92" id="in331" />
<input type="text" name="text22" value=" 24.3 "  id="in3331"/>
<input type="text" name="text33"  id="in1341"/>
   <?php echo "Autumun" ?>
<input type="text" name="text111" value="0.98" id="in332" />
<input type="text" name="text222" value="2.3 "  id="in3332"/>
<input type="text" name="text333"  id="in1342"/>
</form>

我的问题是它只在id="in134". 我需要在所有三个文本框中显示结果, id="in1341"然后id="in1342"单击组合框。怎么可能。请帮助我

4

2 回答 2

0

快速而肮脏的代码

改变onchange功能:

<select name="combo" id="combo" onchange="NewFunction()" onblur="getText661()">

function NewFunction() {
     getText66();
     getText661();
     getText662();
}
于 2013-06-07T18:04:32.257 回答
0

那是因为您只在组合框中调用 getText66()

代替

<select name="combo" id="combo" onchange="getText66()" onblur="getText661()">

经过

<select name="combo" id="combo" onchange="getText66();getText661();getText662();" onblur="getText661()">

提示:这很脏。

于 2013-06-07T18:09:33.710 回答