2016-05-19 11 views
0

Ich habe folgende HTML-Struktur und möchte den Wert des Attributs Preis ändern, wenn eine andere Eingabe gefüllt ist.Wie ändere ich den Attributwert einer Eingabe mit jquery

<dd> 
    <div class="input-box additional-images imprint-images" style="height: 400px; padding-bottom: 0px; outline: medium none; overflow: hidden; width: 889px; padding-right: 0px;" tabindex="0"> 
     <ul id="options-788-list" class="options-list"> 
      <li> 
       <input type="checkbox" price="0" value="9697" id="options_788_2" name="options[788][]" onclick="opConfig.reloadPrice()" class="checkbox product-custom-option"> 
      </li> 
     </ul> 
    </div> 
</dd> 
    <div class="color-quantity not-selected-inputs"> 
     <input type="text" name="custom" onkeydown="return myFunction(event);"> 
    </div> 

Ich habe versucht, mit Hilfe folgendes Skripts Preisattribut zu ändern, aber nicht funktioniert:

var quantitys = 0; 
jQuery(".color-quantity > input").each(function() { 
    if (this.value) { 
     quantitys += (this.value) * 1; 
    } 

    if (parseInt(quantitys) >= "25") { 
     alert("more than 25"); 
     jQuery("dd > .imprint-images > ul > li > input").attr("price", "5.00"); 
    } 
}); 

Bitte helfen Sie mir in diesem Fall.

+2

1) 'price' ist kein gültiges Attribut für das' input' Element, verwenden, um ein 'Data- *' Attribut 2) '(ParseInt (quantitys)> = "25") 'Du hast das Radix vergessen und vergleichst ein int mit einer Zeichenkette –

+0

wo ist das .color-menge> input html Element? Ich sehe es nicht in Ihrem HTML? –

+0

@Rory McCrossan werfen Sie einen Blick auf: jQuery ("dd> .imprint-Bilder> ul> li> Eingabe"). Attr ("Preis")). ToFixed (2). ("Preis", "5.00 "); – Xabby

Antwort

0

HTML

<dd> 
    <div class="input-box additional-images imprint-images" style="height: 400px; padding-bottom: 0px; outline: medium none; overflow: hidden; width: 889px; padding-right: 0px;" tabindex="0"> 
     <ul id="options-788-list" class="options-list"> 
      <li> 
       <input type="checkbox" data-price="0" value="9697" id="options_788_2" name="options[788][]" onclick="opConfig.reloadPrice()" class="checkbox product-custom-option"> 
      </li> 
     </ul> 
    </div> 
</dd> 
    <div class="color-quantity not-selected-inputs"> 
     <input type="text" name="custom" onkeydown="return myFunction(event);"> 
    </div> 

JS

var quantitys = 0; 
jQuery(".color-quantity > input").each(function() { 
    if (this.value) { 
     quantitys += parseInt(this.value); 
    } 

    if (quantitys >= 25) { 
     alert("more than 25"); 
     $("div.imprint-images > ul > li > input").attr("data-price", "5.00"); 
    } 
}); 

Würde das für Sie?

+0

Eigentlich ist der Preis att dynamisch von Magneto CMS erstellt nicht hart von mir selbst codiert, so kann ich es ändern – Xabby

0

Überprüfung dieses i geändert Preis zu Daten-Preis auf Checkbox und Dummy-Klasse hinzufügen update_price_element

Add Klasse add_price Feld

Hpe Text, das hilft.

var quantitys = 0; 
 
\t $('.add_price').blur(function(){ 
 
\t \t var value = $(this).val(); 
 
\t \t if (value) { 
 
\t \t \t quantitys += (this.value) * 1; 
 
\t \t } 
 
\t \t if (parseInt(quantitys) >= "25") { 
 
\t \t \t alert("more than 25"); 
 
\t \t \t $(".update_price_element").attr("data-price", "5.00"); 
 
\t \t } 
 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<dd> 
 
    <div class="input-box additional-images imprint-images" style="height: 400px; padding-bottom: 0px; outline: medium none; overflow: hidden; width: 889px; padding-right: 0px;" tabindex="0"> 
 
     <ul id="options-788-list" class="options-list"> 
 
      <li> 
 
       <input type="checkbox" data-price="0" value="9697" id="options_788_2" name="options[788][]" onclick="opConfig.reloadPrice()" class="checkbox product-custom-option update_price_element"> 
 
      </li> 
 
     </ul> 
 
    </div> 
 
</dd> 
 
<div class="color-quantity not-selected-inputs"> 
 
<input type="text" name="custom" class="add_price" onkeydown="" /> 
 
</div>

+0

Eigentlich ist der Preis Att dynamisch erstellt von Magneto CMS seine nicht hart von mir selbst codiert, so kann ich es ändern – Xabby

+0

kein Problem, speichern Sie diesen Preis als Datenattr oder in einer Variablen. dann komme dahin um hinzuzufügen. –

+0

Das Hauptproblem ist, dass ich nicht in der Lage, auf den Preis attr zugreifen kann – Xabby