Utpal Sarkar
Utpal Sarkar

Reputation: 432

get multiple var in a function by find()

I am trying to create a calculation with two selected option and input. Like when you select 'a' and 'd' then input=1 it give result 75. I wrote a jquery code but it doesn't work . I can't find any error on console .Please check it below :

$(window).load(function(){
function doStuff() {
var uone= $("#ud").children(":selected").attr("id") == 'a';
var utwo= $("#ud").children(":selected").attr("id") == 'b';
var uthree= $("#ud").children(":selected").attr("id") == 'c';
var bone= $("#bt").children(":selected").attr("id") == 'd';
var btwo= $("#bt").children(":selected").attr("id") == 'e';
var getvalue;

if ($(uone).find(bone)) {
    getvalue = 75;
}
if ($(uone).find(btwo)) {
    getvalue = 70;
}
if ($(utwo).find(bone))  {
    getvalue = 81;
}
if ($(uthree).find(bone))  {
    getvalue = 79;
}

var shw = $('#inputamount').val();
var total = getvalue * shw ;
$("#totalop").html(total);
}
$("#inputamount").on('keyup', doStuff);
$("#ud").on('change', doStuff);
$("#bt").on('change', doStuff);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<select name="sucompn" id="ud">
    <option id="a">a</option>
    <option id="b">b</option>
    <option id="c">c</option>
</select>
<select name="ducompn" id="bt">
    <option id="d">d</option>
    <option id="e">e</option>
</select>
<input autocomplete="off" name="inputamount" id="inputamount" value="" type="text">
<span id="totalop"></span>

Upvotes: 0

Views: 52

Answers (2)

CodeHacker
CodeHacker

Reputation: 2138

don't use id use value for the options

<select name="sucompn" id="ud">
  <option value="a">a</option>
  <option value="b">b</option>
  <option value="c">c</option>
</select>
<select name="ducompn" id="bt">
  <option value="d">d</option>
  <option value="e">e</option>
 </select>

then you can get the values like

var selectedUd = $("#ud").val();
var selectedBt = $("#bt").val();

then you can do:

var uone = selectedUd== 'a';
var utwo = selectedUd == 'b';
var uthree = selectedUd == 'c';

var bone =selectedBt == 'd';
var btwo =selectedBt== 'e';

then (I don't really know what you wanted to do here ) but you could do things like

var getValue;
if(uone && bone) getvALUE =75;
else if(uone && btwo) getValue = 70; 
else if(utwo && bone) getValue = 81; 

...here rthe rest of posibilities

var shw = $('#inputamount').val();
var total = getvalue * shw;
$("#totalop").html(total);

Here is the Plunker - Sample

Upvotes: 1

Taras Serba
Taras Serba

Reputation: 36

You have defined var getValue;, but use in code another variable getvalue = 75;(getValue and getvalue are not the same). Probably you have undefined variable and this problem usually yields no console info.

Upvotes: 1

Related Questions