2011-01-06 26 views
0

Bitte helfen Sie mir. Ich möchte dieses Skript für mehrere Eingabewerte verwenden. Bitte hilf mir.Erhalten Sie Formularwerte mit jquery

<script type="text/javascript"> 
$(document).ready(function() { 
     $('#pack').blur(function() { 
    var amount = parseInt($("#rate").val() * $("#pack").val()); 
    var totalamount = parseInt($("#weight").val() * $("#pack").val()); 
    $('.amount').html(amount); 
    $('.totalamount').html(totalamount); 
    return false; 
}); 
    }); 
    </script> 

    <p>amount = (rate * pack)</p> 
<p>totalamount = (weight * pack)</p> 

    <form action="/" class="calculator"> 
<label for="rate">rate: </label><input name="rate" id="rate" type="text" size="5" /> 
<label for="pack">pack: </label><input name="pack" id="pack" type="text" size="5" /> 
<label for="bag">bag: </label><input name="bag" id="bag" type="text" size="5" /> 
<label for="weight">weight: </label><input name="weight" id="weight" type="text" size="5" /> 
<input type="submit" value="calculate" /> 
</form> 

<p>Amount: <span class="amount"></span></p> 
<p>Total Amount: <span class="totalamount"></span></p> 

zum Beispiel:

<label for="rate">rate: </label><input name="rate" id="rate" type="text" size="5" /> 
<label for="pack">pack: </label><input name="pack" id="pack" type="text" size="5" /> 
<label for="bag">bag: </label><input name="bag" id="bag" type="text" size="5" /> 
<label for="weight">weight: </label><input name="weight" id="weight" type="text" size="5" /> 

<label for="rate">rate: </label><input name="rate" id="rate" type="text" size="5" /> 
<label for="pack">pack: </label><input name="pack" id="pack" type="text" size="5" /> 
<label for="bag">bag: </label><input name="bag" id="bag" type="text" size="5" /> 
<label for="weight">weight: </label><input name="weight" id="weight" type="text" size="5" /> 

dank

+4

Was wieder die Frage ist ..? O.o –

+2

Es schlägt fehl, weil Sie mehrere IDs mit demselben Namen deklarieren, verwenden Sie stattdessen Klassen. – Ben

+0

gibt es einen Weg? – Kulbir

Antwort

2
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#pack').blur(function() { 
     var amount = 0; 
     var totalamount = 0; 
     $('.rate').each(function() { 
      amount+= parseInt($(this).val() * $(this).next().val(), 10); 
      totalamount+= parseInt($(this).next().next().val() * $(this).next().next().next().val(), 10); 
      // their should be a better solution to do the next().next().etc part :P, please tell me 
     }); 

     $('.amount').html(amount); 
     $('.totalamount').html(totalamount); 
     return false; 
    }); 
}); 
</script> 

<p>amount = (rate * pack)</p> 
<p>totalamount = (weight * pack)</p> 

    <form action="/" class="calculator"> 
<label for="rate">rate: </label><input name="rate[]" class="rate" type="text" size="5" /> 
<label for="pack">pack: </label><input name="pack[]" class="pack" type="text" size="5" /> 
<label for="bag">bag: </label><input name="bag[]" class="bag" type="text" size="5" /> 
<label for="weight">weight: </label><input name="weight[]" class="weight" type="text" size="5" /> 
<input type="submit" value="calculate" /> 
</form> 

<p>Amount: <span class="amount"></span></p> 
<p>Total Amount: <span class="totalamount"></span></p> 

IDs eindeutig sein müssen, so habe ich es zu Klassen. Und ich habe Arrays Ihrer Eingabenamen erstellt.

+0

ok danke dir sooo viel :-) – Kulbir

+0

Kein Problem Kumpel. – PeeHaa

+0

Es ist eine gute Übung, das Argument 'radix' in' parseInt' zu verwenden. 'parseInt (etwas, 10)'. Versuchen Sie 'parseInt (" 010 ")' gegenüber 'parseInt (" 010 ", 10)', um zu sehen, warum. –

1

Wie wäre es damit?

$('form.calculator input:text').blur(function() { 
    var rate = parseInt($("#rate").val()); 
    var pack = parseInt($("#pack").val()); 
    var weight = parseInt($("#weight").val()); 

    if (rate > 0 && pack > 0) { 
     $('.amount').html(rate * pack); 
    } 

    if (pack > 0 && weight > 0) { 
     $('.totalamount').html(weight * pack); 
    } 
    return false; 
}); 

Arbeitsbeispiel: http://jsfiddle.net/vEBzs/

+0

danke dir Mr. Hunter – Kulbir

Verwandte Themen