2017-12-04 15 views
0

入力の値を変更してクリックした後に送信します。 何らかの理由で提出されません。divをクリックしたときに入力値が変更されない

divをクリックしたときに入力内の値が増減しましたが、入力中ではありません。

入力とオフフォーカスの値を変更すると、保存されます。

私はここで何が欠けていますか?

<div class="reduced items item-<?php echo $this->getQty() ?>" 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() ?>) &amp;&amp; qty_<?php echo $item->getId() ?> > 1) result_<?php echo $item->getId() ?>.value--; 
$(location.href='save').submit(); 
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++; 
$(location.href='save').submit(); 
return false;">+</div> 
+1

*ここでは何が分かりませんか? - いくつかの書式設定のスキル...おい - あなたの書式を並べ替えると、おそらくあなたのコードを実際に見ることができるでしょう... O0 –

+3

そのコード読むことができません。実際に生成されたHTMLの例を教えてください。理想的には[mcve] '$(location.href = 'save')。submit();はあなたが思っていることをしないという強い疑いも持っています。 –

答えて

0

まあ、 まず、あなたがやった方法のように、あなたのPHP/HTML/JavaScriptコードを混在させるべきではありません。

第2に、id、または変数名の別のコード値を置き換えずに、代わりにidに相当するキー値を持つ配列を使用します。

第3に、機能を使用すると、発生している問題を簡単に見て、コードを整理しています。あなたはjqueryのseletor内LOCATION.HREF使用しているため

あなたの問題は、私はあなたのフォームが何であるか知らないが、フォームを送信するために正しく方法は次のようなものです:

function click_function_down(item_id) { 
    var result[item_id] = document.getElementById('qty_' + item_id); 
    var qty[item_id] = result[item_id].value; 
    if(!isNaN(qty[item_id]) 
     && qty[item_id] > 1) { 
      result[item_id].value--; 
     } 

    $('#yourform').submit(); 
    return false; 
} 

function click_function_up(item_id) { 
    var result[item_id] = document.getElementById('qty_' + item_id); 
    var qty[item_id] = result[item_id].value; 
    if(!isNaN(qty[item_id])) { 
      result[item_id].value--; 
     } 

    $('#yourform').submit(); 
    return false; 
} 

とHTMLコード:

<form id="yourform" action="save"> 
<div 
class="reduced items item-<?php echo $this->getQty() ?>" 
onclick="click_function_up(<?php echo $item->getId() ?>)"> 
- 
</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="reduced items item-<?php echo $this->getQty() ?>" 
onclick="click_function_up(<?php echo $item->getId() ?>)"> 
- 
</div> 

これを試して、あなたが問題を解決することができれば、私に知らせてください。

関連する問題