Сообщение от Poznakomlus
|
Что за спор а драки нет?
Я вам привел актуальное и лучшее решение на данный момент(Свое ). (Оформление можете сами поправить)
Если вы глянете большинство магазинов, то там +- прописывают функцию прямо в input тем самым засоряя html разметку.
|
Прикрепил Ваше решение с своему сайту и у меня перестали добавляться в заказ как положено. Не могу разобраться почему.
<table id="data">
<tr>
<td><img src="/images/venge.jpg" class="material"></td>
<td><span>Венге</span></td>
<td><div class="podbor"><input type="text" name="quantity" value="0" size="5"><span class="plus"></span><span class="minus"></span></div><input type="button" value="Заказать" class='buttonsubmit'></td>
</tr>
<tr>
<td><img src="/images/orekh.jpg" class="material"></td>
<td><span>Орех гварнери</span></td>
<td><input type="text" name="quantity" value="0" size="5"><input type="button" value="Заказать" class='buttonsubmit'></td>
</tr>
<tr>
<td><img src="/images/klen.jpg" class="material"></td>
<td><span>Клен медисон</span></td>
<td><input type="text" name="quantity" value="" size="5"><input type="button" value="Заказать" class='buttonsubmit'></td>
</tr>
</table>
<div id="zayavka" class='b1c-name'></div>
<br>
<!-- <input type="checkbox" name="sborka"> <span style="font-size: 16px; font-weight: 400;">Сборка специалистом нашего интернет-магазина</span> -->
</div>
<span id='reqSborka' style='display:none;font-size:14px;font-weight:400;width:400px;'>
<b><span style="color: blue">Количество столов под сборку?</span></b><br/>
<input type="radio" name="sborka_radio" value='1'>
<span> Вам нужна сборка стола(ов)? Укажите количество! </span><input type="text" name="stol_sborka_sum" size=3> Стоимость сборки одного стола - 1000 руб. <br>
<input type="radio" name="sborka_radio" value='2'><span> Нет</span><br>
</span>
var d = document;
window.onload = function () {
d.getElementById("data").onclick = function(e) {
var target = e && e.target || event.srcElement;
if (target.type == "button" && target.value == "Заказать") {
var value = target.previousSibling.value;
var valueSupport = value||1;
//alert(target.parentNode.previousSibling.previousSibling.childNodes[0].childNodes[0].nodeValue);
var ua = navigator.userAgent;
var elm = ua.search(/MSIE/) > -1 ? target.parentNode.previousSibling.childNodes[0].nodeValue : target.parentNode.previousSibling.previousSibling.childNodes[0].childNodes[0].nodeValue;
var div = d.createElement("div");
var span = d.createElement("span");
span.setAttribute("style", "color: red");
span.appendChild(d.createTextNode(value));
div.setAttribute("style","width:500px");
div.appendChild(d.createTextNode(elm+": "+valueSupport+" шт. на сумму: "+valueSupport*9000+" руб."));
//div.appendChild(span);
var input = d.createElement("input");
input.setAttribute("type", "button");
input.setAttribute("value", "Отменить");
input.setAttribute("alt",valueSupport*9000);
sumOfItem+=parseInt(valueSupport);
input.onclick = function () {deletElementResultSum(this); d.getElementById("zayavka").removeChild(this.parentNode); };
div.appendChild(input);
d.getElementById("zayavka").appendChild(div);
}
}
}
<p><b><span style="color: blue">Услуги по доставке</span></b></p>
<p><input type="radio" name="dostavka" value="300"><span> г. Нижний Новгород (нижняя часть города) в течение 5 дней 300 руб.</span><br>
<p><input type="radio" name="dostavka" value="400"><span> г. Нижний Новгород (верхняя часть города) в течение 5 дней 400 руб.</span><br>
<p><input type="radio" name="dostavka" value="800"><span> г. Нижний Новгород, срочная (верхняя и нижняя часть города) на следующий день после оформления! 800 руб.</span><br>
<p><input type="radio" name="dostavka" value="1500"><span> Нижегородская область до 30 км. в течение 5 дней 1500 руб.</span><br>
<p><input type="radio" name="dostavka" value="0"><span> За пределами Н.Новгорода от 30 км. (на круг) 14 руб./км</span><br>
<p><input type="radio" name="dostavka" value="0"><span> Транспортной компанией: с тарифами доставки Вы можете ознакомится: <a href="http://www.pecom.ru/ru/calc/">ТК ПЭК</a>, <a href="http://www.dellin.ru/">ТК Деловые Линии</a>, <a href="http://www.ae5000.ru/">Автотрейдинг</a>. Вес упаковки стола с механизмом составляет 40 килограмм (2места). Вся мебель поставляется в разобранном виде в плоских упаковках.</span>
<p><b><span style="color: blue">Услуги по подъему на этаж</span></b></p>
<p><input type="radio" name="podyem" value='1'>
<span> Подъем стола-транформера в квартиру 100 руб./этаж на </span><input type="text" name="etazh" size=3> (укажите этаж)<br>
<p><input type="radio" name="podyem" value='2'><span> Подъем стола-транформера с лифтом 100 руб. 1 штука.</span><br>
<p> </p>
<div style="font-weight:bold;">
<span id='resultBlock' hidden>Итого:<span id='resultSum'></span> р.</span></div>
<input type="button" class="b1c" value="Оформить заявку стола-трансформера" style="margin:0 400px;">
var resultBlock_js = document.getElementById('resultBlock');
var resultSum_js = document.getElementById('resultSum');
var reqSborka_js = document.getElementById('reqSborka');
var sumOfItem = 0;
var lastVarDostavka = 0;
var lastVarPodyem = 0;
var stateVarPodyem = 0;
var lastVarSborka = 0;
var stateVarSborka = 0;
var nowResultSum = 0;
jQuery('.buttonsubmit').click(function(){
resultBlock_js.hidden = false;
reqSborka_js.style.display = 'block';
var addPrice = this.parentNode.firstChild.value;
if(addPrice=='')
{
addPrice = 1;
}
nowResultSum +=addPrice*9000;
resultSum_js.innerHTML = nowResultSum;
});
jQuery('input[name=dostavka]').click(function(){
nowResultSum -=lastVarDostavka;
lastVarDostavka = parseInt(this.value);
nowResultSum+=lastVarDostavka;
resultSum_js.innerHTML = nowResultSum;
});
jQuery('input[name=podyem]').click(function(){
nowResultSum -= lastVarPodyem;
if(this.value=='1')
{
lastVarPodyem = document.getElementsByName('etazh')[0].value*100*sumOfItem;
stateVarPodyem = 1;
}
else
{
stateVarPodyem = 0;
lastVarPodyem = sumOfItem*100;
}
nowResultSum+=lastVarPodyem;
resultSum_js.innerHTML = nowResultSum;
});
jQuery('input[name=etazh]').change(function(){
if(stateVarPodyem == 1)
{
nowResultSum -= lastVarPodyem;
lastVarPodyem = document.getElementsByName('etazh')[0].value*100*sumOfItem;
nowResultSum+=lastVarPodyem;
resultSum_js.innerHTML = nowResultSum;
}
})
jQuery('input[name=sborka_radio]').click(function(){
nowResultSum -= lastVarSborka;
if(this.value=='1')
{
lastVarSborka = document.getElementsByName('stol_sborka_sum')[0].value*1000;
stateVarSborka = 1;
}
else
{
stateVarSborka = 0;
lastVarSborka = 0;
}
nowResultSum+=lastVarSborka;
resultSum_js.innerHTML = nowResultSum;
});
jQuery('input[name=stol_sborka_sum]').change(function(){
if(stateVarSborka == 1)
{
nowResultSum -= lastVarSborka;
lastVarSborka = document.getElementsByName('stol_sborka_sum')[0].value*1000;
nowResultSum+=lastVarSborka;
resultSum_js.innerHTML = nowResultSum;
}
})
function deletElementResultSum(myObj){
nowResultSum -=myObj.alt;
resultSum_js.innerHTML = nowResultSum;
sumOfItem=sumOfItem - (parseInt(myObj.alt))/9;
if(sumOfItem==0)
{
resultBlock_js.hidden = true;
reqSborka_js.style.display = 'none';
}
}