<p> рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рдорд╛рдирдХ рд╕рд░рдгрд┐рдпреЛрдВ рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рднрд╛рд░реА рд╣реИред рдпрд╣ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рд╣реИрд╢ рд╡рд░реНрдЧ рд╣реИ , рдФрд░ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рддрд░реНрдХ рдФрд░ рдЧрдгрдирд╛ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдХреНрд╖реЗрддреНрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ) рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдпред
var calculations = new Hash({})
function calcPrice() {
var f = document.forms['calculator']
var price = 0
calculations.each(function(pair) {
if(f[pair.key] == null){
alert(pair.key)
}
if(pair.value['fieldtype'] == 'counter' && f[pair.key].value.match(/^\d+$/)){
price += f[pair.key].value * pair.value['price']
}
if(pair.value['fieldtype'] == 'radio'){
val = getRadioValue(f[pair.key])
} else {
val = f[pair.key].value
}
if(pair.value['fieldtype'] == 'radio' || pair.value['fieldtype'] == 'select'){
if(val != 0){
price += pair.value['prices'][val]
}
}
})
$('pricevalue').innerHTML = price + ' .'
}
<p> рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдХреЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, getRadioValue рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
function getRadioValue(radio) {
for(i = 0; i < radio.length; i++){
if(radio[i].checked)
return radio[i].value
}
return 0;
}
<p> рдЧрдгрдирд╛ рд╣реИрд╢ рдХреА рдХреБрдВрдЬреА рдкреНрд░рдкрддреНрд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдирд╛рдо рд╣реИрдВ, рдорд╛рди рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрд╢ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреА рдХреБрдВрдЬреА рд╣реЛрддреА рд╣реИ рдЬреЛ рдлрд╝реАрд▓реНрдб рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреНрдп рдХреБрдВрдЬрд┐рдпрд╛рдБ рднреА рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐ рдлрд╝реАрд▓реНрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореВрд▓реНрдп рдФрд░ рдореВрд▓реНрдп)ред рдпрд╣ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХреЛрдб рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред рдореИрдВрдиреЗ рддреАрди рддрд░рд╣ рдХреЗ рдЦреЗрддреЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред </ p>
<p> рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрдгрдирд╛ рдХреЗ рд╣реИрд╢ рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдлреЙрд░реНрдо рдХрд╛ AJAX- рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред </ p>
рдХрд╛рдЙрдВрдЯрд░ рдлреАрд▓реНрдб
<p> рдкрд╛рда рдпрд╛ рдЕрдиреНрдп рдлрд╝реАрд▓реНрдб рдЬрд┐рд╕рдореЗрдВ рдорд╛рддреНрд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИ; рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдореВрд▓реНрдп рдХреБрдВрдЬреА рдХреЗ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рдорд╛рддреНрд░рд╛ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИред </ p>
calculations['units'] = $H({ fieldtype:'counter', price:5.50 })
<input type="text" value="2" name="counter">
рдлрд╝реАрд▓реНрдб рдЪреБрдиреЗрдВ
рдХрдИ рдорджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХрд╛ рдЕрдкрдирд╛ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ - рдореВрд▓реНрдп рдореВрд▓реНрдп рдирд┐рдпрдо рдХреБрдВрдЬреА рдореЗрдВ рдПрдХ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
calculations("color") = $H({ fieldtype:'select', prices:$H({white:20.95,red:49.55}) })
<select name="color">
<option value="white"></option>
<option value="red"></option>
</select>
рд░реЗрдбрд┐рдпреЛ рдХреНрд╖реЗрддреНрд░
рдЪрдпрди рдХреЗ рд╕рдорд╛рди, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
calculations("color") = $H({ fieldtype:'radio', prices:$H({white:20.95,red:49.55}) })
<input type="radio" name="color" value="white" />
<input type="radio" name="color" value="red" />