Javascript раскрывающийся список математических расчетов - PullRequest
1 голос
/ 19 июля 2010

Я пытаюсь создать страницу с двумя выпадающими меню, а затем, когда пользователь нажимает «Отправить», он рассчитывает цену на основе данных, предоставленных из выпадающего меню.Требуется взять 1 или 2 из первого выбора в раскрывающемся меню, умножить его на значение второго выбора в раскрывающемся меню, умножить на 0,2 и вывести его, когда пользователь нажимает кнопку подтвержденияЯ пытался заставить это работать, но я продолжаю получать ошибки NaN.Любая помощь?

<head>
<script type="text/javascript">
function price() {
        var sqBn = document.priceCalc.squareOrBanner;
        var Amt = document.priceCalc.number;
    var price = sqBn * Amt * 0.2;
    document.write(price);
}
</script>

<form name="priceCalc" action="priceCalcPage.html" onsubmit="document.write(price())">
<div align="center">
<select name="squareOrBanner">
<option value="1">Square</option>
<option value="2">Banner</option>
</select>

<select name="number">
<option value="250">250</option>
<option value="500">500</option>
<option value="750">750</option>
<option value="1000">1000</option>
</select>
<br><input type="submit" value="Figure out pricing!"><br>
</div>
</form>

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Возможно, вы ищете что-то вроде этого:

http://jsfiddle.net/JSvSn/1/

Вам необходимо получить доступ к свойству value в следующих объектах:

var price = sqBn.value * Amt.value * 0.2;

РЕДАКТИРОВАТЬ: Вот версия, которая обновляет значение поля ввода с ценой: http://jsfiddle.net/JSvSn/5/

РЕДАКТИРОВАТЬ 2: Показывать цену в делении.

1 голос
/ 19 июля 2010

Я не уверен, будет ли sqBn.value работать во всех браузерах. Было бы безопаснее использовать

sqBn.options[sqBn.selectedIndex].value

и если вы все еще получаете результаты NaN, попробуйте

parseInt(sqBn.options[sqBn.selectedIndex].value)

Если вы хотите выполнить этот расчет без обновления страницы, измените объявление формы следующим образом:

<form name="priceCalc" action="priceCalcPage.html" onsubmit="document.write(price());return false;">    

Таким образом, будет выполнен onsubmit, но он ничего не отправит в действие. Если вы хотите отправить его, вы все равно можете сделать это из JavaScript (document.priceCalc.submit()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...