Neben einer Eingabe möchte ich zwei Divs mit Plus- und Minuszeichen anzeigen, so dass beim Klicken auf einen der divs der Wert innerhalb der Eingabe erhöht oder verringert wird.Eingabewert speichern onclick div
Es funktioniert fast perfekt, aber der beste Weg, um die Eingabe zu speichern. Durch Ändern der Eingabe und Laden der /save
URL. Die Eingabe funktioniert perfekt mit diesem Code, der beim Ändern der/save URL lädt und der Wert wird gespeichert.
Ich möchte das gleiche für die Divs, dass beim Klicken auf das Div der Wert innerhalb der Eingabe ändert sich und der Wert wird von der /save
URL gespeichert.
Wie muss ich meinen Code ändern?
CODE HTML:
<div class="quote-item product-quote-qty">
<div id="qdiv_<?php echo $item->getId() ?>" nowrap="nowrap" class="qty-div input-box">
<div class="reduced items item-<?php echo $item->getQty()*1; ?>" onclick="var result_<?php echo $item->getId() ?> = document.getElementById('qty_<?php echo $item->getId() ?>'); var qty_<?php echo $item->getId() ?> = result_<?php echo $item->getId() ?>.value; if(!isNaN(qty_<?php echo $item->getId() ?>) && qty_<?php echo $item->getId() ?> > 1) result_<?php echo $item->getId() ?>.value--;saveForm();return false;">-</div>
<input type="text" name="quote_request[<?php echo $item->getId() ?>][qty][]" id="qty_<?php echo $item->getId() ?>" value="<?php echo $item->getQty()*1; ?>" size="4" title="<?php echo $this->__('Qty') ?>" onchange="location.href='save'" class="required-entry validate-zero-or-greater input-text" maxlength="12" />
<div class="increase items" onclick="var result_<?php echo $item->getId() ?> = document.getElementById('qty_<?php echo $item->getId() ?>'); var qty_<?php echo $item->getId() ?> = result_<?php echo $item->getId() ?>.value; if(!isNaN(qty_<?php echo $item->getId() ?>)) result_<?php echo $item->getId() ?>.value++;saveForm();return false;">+</div>
</div>
</div>
CODE JS:
function saveForm() {
var form = $('quotelist').clone(true);
//update textarea
var i = 0;
$('quotelist').select('textarea').each(function (el) {
form.select('textarea')[i].value = $(el).value;
i++;
});
var action = $('quotelist').action;
action = action.replace("quoteRequest", "save");
form.action = action;
form.request({
onComplete: function(){ Miniquote.reloadContent(); }
});
}
function addQtyFieldSaver(){
$$('#shopping-cart-table input[type=text]').each(function (el) {
return $(el).observe('blur', function(e){
saveForm();
});
});
}
EDIT:
function addQtyFieldSaver(){
$$('#shopping-cart-table input[type=text]').each(function (el) {
return $(el).observe('blur', function(e){
saveForm();
});
});
$('.reduced').click(function() {
var el = $(this).parent().find('input:text');
var newval = (parseInt($(el).val(),10) - 1 > 0)?$(el).val() - 1:0;
el.val(newval);
saveForm();
});
$('.increase').click(function() {
var el = $(this).parent().find('input:text');
var newval = parseInt($(el).val(),10)+1;
el.val(newval);
saveForm();
});
}
Vielen Dank! Wenn ich Ihren Code ausprobiere, erhalte ich einen JS-Fehler: 'TypeError: null ist kein Objekt (auswerten '$ ('. Reduced '). Click')' –
rufst du addQtyFieldSaver auf Dokument bereit? – Rodrigo
Ja, siehe meine Bearbeitung. Ich lade es in die Funktion addQtyFieldSaver. Aber das scheint nicht zu funktionieren. –