Использование Jquery для проверки двух выбранных элементов и их значений и возврата результата из одного из двух массивов? - PullRequest
0 голосов
/ 26 октября 2010

По какой-то причине, приведенный ниже код переводит переменную валюты в строку, а затем не получает фактическое значение из переменной с собственным именем ...

$("#quantity").change(function() {
    var euroPrice = new Array("12.95", "14.95", "18.95", "21.95");
    var gbpPrice = new Array("10.95", "11.95", "16.95", "18.95");

    var currency = $("#currency option:selected").val();
    ​​var currently = $("#quantity option:selected").val();

    $("#Price").text( currency[currently]);
    $("#amount").attr("value", currency[currently]);
});

Где #currency и #quantity - это два поля выбора в HTML, в которых мне нужен код, чтобы оценить их текущие выбранные значения при изменениях и извлечь правильное значение из правильной переменной.

Любая помощь, полученная очень:)

м

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Я не вижу HTML ... но единственное, что имеет для меня смысл, почему вы не используете два определенных массива, это если валюта - это выпадающий список с двумя потенциальными значениями: euroPrice и gbpPrice'и вы пытаетесь использовать это как динамическую переменную с количеством, являющимся индексом массива для любой валюты.Если я прав в своих предположениях, то я думаю, что вам не хватает выражения eval ().Также обратите внимание, что для выбора вам не нужно использовать параметр: selected в jquery.Выражение val () это понимает.Я также предполагаю, что #amount является входным параметром и не нуждается в attr () ... так что:

var currency = $("#currency").val();
var quantity = $("#quantity").val();

eval("var price = "+currency+"["+quantity+"];");
$("#Price").text( price );
$("#amount").val( price );

Надеюсь, это то, к чему вы действительно стремились.Если нет, то я думаю, что просмотр двух HTML-выборок, по крайней мере с первыми несколькими выбираемыми значениями в каждом, будет очень полезен для выяснения того, что вы пытаетесь сделать.

0 голосов
/ 26 октября 2010

Я не уверен, чего именно вы здесь пытаетесь достичь, но полное отсутствие ссылки на euroPrice и gbpPrice выглядит так, будто вы просто запрашиваете неправильный массив для значения.

var currency = $("#currency option:selected").val();
​​var currently = $("#quantity option:selected").val();

$("#Price").text( currency[currently]);
$("#amount").attr("value", currency[currently]);

В соответствии с этим кодом валюта будет представлять собой одно значение, а именно атрибут значения выбранного элемента в селекторе валют, в то время как в настоящее время будет также одно значение, а именно значение выбранного элементаиз вашего количества выберите поле.

Во второй паре строк вы пытаетесь сослаться на валюту [в настоящее время], которая пытается получить доступ к одной строке в виде массива.Я думаю, что именно здесь вы допустили ошибку.Разве не возможно, что вы хотели иметь что-то вроде

$("#Price").text( euroPrice[currently]);
$("#amount").attr("value", euroPrice[currently]);

(на случай, если вам нужен эквивалент в валюте евро)?

...