Jump to content
  • 0

просчитать форму с чекбоксами


max1m
 Share

Question

Здраствуйте столкнулся с проблемой нужно просчитать форму и не перегружая страницу вывести результат загвоздка в том что в форме присутствуют checkbox которые влияют на расчеты так как почти не знаком с javascript прошу помощи у вас.

вот форма :

<form method="post" action="">
<table>
<tr>
<td class='first'>Cтоимость:</td>
<td><input type="text" name="cost" maxlength="5" value="" /></td>
</tr>
<tr>
<td class='first'>Кол-во:</td>
<td><input type="text" name="plan" maxlength="5" value="" /></td>
</tr>
<td class='first'>Параметр 1:</td>
<td><input type="checkbox" name="param1" value="" /> + 10%</td>
</tr>
<tr>
<td class='first'>Параметр 2:</td>
<td><input type="checkbox" name="param2" value="" /> + 10%</td>
</tr>
<tr>
<td class='first'>Итог:</td>
<td><input type="text" name="total" value="" /></td>
</tr>
</table>
<input type='submit' value='заказать' />
</form>

Необходимо стоимость умножить на кол-во и в зависимости от чекбокса произвести расчет, если чекбокс 1 отмечен прибавить 10%, если чекбокс 2 отмечен прибавить также 10% если оба то 20% прибавить, процент всегда должен вычисляться из стоимости умноженной на кол-во, после проведения всех операций вывести полученный итог в поле Итог:.

Сам смог осилить подобный просчет только если вместо чекбоксов ставить селект, но мне нужен чекбокс.

Спасибо.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
А пкажте осиленный код.

<script type="text/javascript">
var dyn = 0.03;
var bold = dyn * frm.plan.value / 100 * 10;
var highlight = dyn * frm.plan.value / 100 * 10;
var celoe;
var drob;
var res;
function okrugl(nums) {
celoe=Math.floor(nums);
drob=(nums-celoe)*100;
drob=Math.floor(drob);
if (drob>=10) {
res = celoe+'.'+drob;
}
else {
res=celoe+'.0'+drob;
}
return res;
}
function getZakaz(frm) {
frm.summa.value = frm.plan.value * dyn + frm.bold.value + bold + frm.highlight.value + highlight;
frm.summa.value=okrugl(frm.summa.value);
}
</script>

<form name="formzakaz" method="post" action="">
<table>
<td class='first'>Кол-во:</td>
<td><input name="plan" type="text" onChange="getZakaz(this.form)" value="" /></td>
</tr>
<tr>
<th>Выделение шрифта:</th>
<td>
<select name="bold" autocomplete="off" onChange="getZakaz(this.form)" />
<option value="0">Не выделять</option>
<option value="1">Выделить</option>
</select>
</td>
</tr>
<tr>
<th>Выделение цветом:</th>
<td>
<select name="highlight" autocomplete="off" onChange="getZakaz(this.form)" />
<option value="0">Не выделять</option>
<option value="1">Выделить</option>
</select></td></tr>
<tr>
<td>Стоимость заказ:</td>
<td><input type='text' readonly='readonly' name='summa' autocomplete="off" value=""/></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="submit" tabindex="10" /></td>
</tr>
</table>
</form>

вот так криво и коряво ;)

Link to comment
Share on other sites

  • 0

вот рабочий код спасибо всем за участие) может кому пригодится

<script type="text/javascript">
var price = 0.03;
var bold = price / 10;
var highlight = price / 10;
function round(nums) {
celoe = Math.floor(nums);
drob = (nums-celoe)*100;
drob = Math.floor(drob);
if(drob >= 10) {
res = celoe+'.'+drob;
}
else {
res = celoe+'.0'+drob;
}
return res;
}

function getCost(frm) {
frm.cost.value = frm.plan.value * price;
if (frm.bold.checked == true) frm.cost.value = frm.plan.value * price + frm.plan.value * bold;
if (frm.highlight.checked == true) frm.cost.value = frm.plan.value * price + frm.plan.value * highlight;
if (frm.bold.checked == true && frm.highlight.checked == true) frm.cost.value = frm.plan.value * price + frm.plan.value * bold + frm.plan.value * highlight;
frm.cost.value = round(frm.cost.value);
}
</script>

<form name="formzakaz" method="post" action="advertise.php?adv=dyn">
<table width="400" border="0" align="center">
<tr>
<td width="150" align="left"><p><label>plan:</label></p></td>
<td width="250" align="left"><input name="plan" type="text" onChange="getCost(this.form)" value="0" size="6" maxlength="150" tabindex="4"/></td>
</tr>
</tr>
<td class='first'><p><label>bold:</label></td>
<td><input type="checkbox" name="bold" value="" class="checkbox" onChange="getCost(this.form)" /> + 10%</td>
</tr>
<tr>
<td class='first'><p><label>highlight:</label></p></td>
<td><input type="checkbox" name="highlight" value="" class="checkbox" onChange="getCost(this.form)" /> + 10%</td>
</tr>
<tr>
<td width="150" align="left"><p><label>total summ:</label></p></td>
<td width="250" align="left"><input type='text' size='10' maxlength='20' readonly='readonly' name='cost' autocomplete="off" value=""/></td>
</tr>
</table>
</form>

Попробую еще раз обратится форма ставится на страницу где подключается фреймворк jquery может возможно эту форму реализовать по средствам этого фреймворка?

Edited by max1m
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy