обработка формы, не работает только в IE
function getResult(){ var table= { 1:{price:350,density:1630}, 2:{price:650,density:1580}, 3:{price:700,density:1620}, }; var price=0,value=0; if (measure.value==1) { price=((table[product.value].price*count.value).toFixed(2)); value=((table[product.value].density*count.value).toFixed(0)); result.innerHTML=price+' руб. ('+value+' кг.)' } else if (measure.value==2) { price=((count.value/table[product.value].density*table[product.value].price).toFixed(2)); value=((count.value/table[product.value].density).toFixed(1)); result.innerHTML=price+' руб. ('+value+' м3.) ' } } <form onsubmit="return false;" oninput="getResult()"> <select size=1 id=product onChange="getResult()"> <option value=1 selected>Песок</option> <option value=2>Гравий</option> <option value=3>Щебень</option> </select>кол-во: <input id="count" type="number" value=1 min=0 oninput="getResult()"> <select size=1 id="measure" onChange="getResult()"> <option value=1 selected>м3</option> <option value=2>кг</option> </select> Цена: <span id="result">350 руб. (1300 кг.)</span> </form> html форма никак не обрабатывается експлорером :( |
exzibit,
а не любит ie таких вещей Цитата:
Цитата:
Цитата:
Цитата:
|
спасибо, методом дополнительного тыка заработало в opera,chrome, ff, ie8
P.S. код обозначения переменных можно как-то сократить? function getResult(){ var table= { 1:{price:350,density:1630}, 2:{price:150,density:1580}, 3:{price:700,density:1620}, 4:{price:1100,density:1360}, 5:{price:1100,density:1360}, 6:{price:1100,density:1400}, 7:{price:300,density:1580} }; var price=0,value=0; var productId=document.getElementById("product"); var productValue=productId.value; var countId=document.getElementById("count"); var countValue=countId.value; var measureId=document.getElementById("measure"); var measureValue=measureId.value; var result=document.getElementById("result"); if (measureValue==1) { price=((table[productValue].price*countValue).toFixed(2)); value=((table[productValue].density*countValue).toFixed(0)); result.innerHTML=price+' руб. ('+value+' кг.)' } else if (measureValue==2) { price=((countValue/table[productValue].density*table[productValue].price).toFixed(2)); value=((countValue/table[productValue].density).toFixed(1)); result .innerHTML=price+' руб. ('+value+' м3.) ' } } <form onsubmit="return false;" oninput="getResult()"> <select size=1 id=product onChange="getResult()"> <option value=1 selected>Песок мытый</option> <option value=2>Отсев песка</option> <option value=3>Гравий 20x40</option> <option value=4>Щебень 5х20</option> <option value=5>Щебень 20х40</option> <option value=6>Щебень 40х70</option> <option value=7>Отсев щебня</option> </select>кол-во: <!--[if IE]> <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]--> <!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]--> <select size=1 id="measure" onChange="getResult()"> <option value=1 selected>м3</option> <option value=2>кг</option> </select> Цена: <span id="result">350 руб. (1300 кг.)</span> </form> |
exzibit,
можно так чуток сократить :) <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <form onsubmit="return false;" oninput="getResult()"> <select size=1 id=product onChange="getResult()"> <option value=1 selected>Песок мытый</option> <option value=2>Отсев песка</option> <option value=3>Гравий 20x40</option> <option value=4>Щебень 5х20</option> <option value=5>Щебень 20х40</option> <option value=6>Щебень 40х70</option> <option value=7>Отсев щебня</option> </select>кол-во: <!--[if IE]> <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]--> <!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]--> <select size=1 id="measure" onChange="getResult()"> <option value=1 selected>м3</option> <option value=2>кг</option> </select> Цена: <span id="result">350 руб. (1300 кг.)</span> </form> <script> function getResult(){ var table= { 1:{price:350,density:1630}, 2:{price:150,density:1580}, 3:{price:700,density:1620}, 4:{price:1100,density:1360}, 5:{price:1100,density:1360}, 6:{price:1100,density:1400}, 7:{price:300,density:1580} }; var price=0,value=0, elems = document.querySelectorAll('#product, #count, #measure, #result'); elems = [table[elems[0].value], elems[1].value, elems[2].value, elems[3]]; if (elems[2]==1) { price=((elems[0].price*elems[1]).toFixed(2)); value=((elems[0].density*elems[1]).toFixed(0)); price+=' руб. ('+value+' кг.)' } else if (elems[2]==2) { price=((elems[1]/elems[0].density*elems[0].price).toFixed(2)); value=((elems[1]/elems[0].density).toFixed(1)); price+=' руб. ('+value+' м3.) ' } elems[3].innerHTML=price } </script> </body> </html> |
exzibit,
или так :lol: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <form onsubmit="return false;" oninput="getResult()"> <select size=1 id=product onChange="getResult()"> <option value=1 selected>Песок мытый</option> <option value=2>Отсев песка</option> <option value=3>Гравий 20x40</option> <option value=4>Щебень 5х20</option> <option value=5>Щебень 20х40</option> <option value=6>Щебень 40х70</option> <option value=7>Отсев щебня</option> </select>кол-во: <!--[if IE]> <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]--> <!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]--> <select size=1 id="measure" onChange="getResult()"> <option value=1 selected>м3</option> <option value=2>кг</option> </select> Цена: <span id="result">350 руб. (1300 кг.)</span> </form> <script> function getResult() { var b, c, a = document.querySelectorAll("#product, #count, #measure, #result"), a = [{ 1:{price:350,density:1630}, 2:{price:150,density:1580}, 3:{price:700,density:1620}, 4:{price:1100,density:1360}, 5:{price:1100,density:1360}, 6:{price:1100,density:1400}, 7:{price:300,density:1580} }[a[0].value], a[1].value, a[2].value, a[3]]; 1 == a[2] ? (b = (a[0].price * a[1]).toFixed(2), c = (a[0].density * a[1]).toFixed(0), b += " руб. (" + c + " кг.)") : 2 == a[2] && (b = (a[1] / a[0].density * a[0].price).toFixed(2), c = (a[1] / a[0].density).toFixed(1), b += " руб. (" + c + " м3.) "); a[3].innerHTML = b }; </script> </body> </html> |
спасибо, полезно) и мозг взорван на 5+ :lol:
|
Часовой пояс GMT +3, время: 04:59. |