#javascript #jquery
#javascript #jquery
Вопрос:
Итак, у меня есть выпадающий список, подобный этому:
<select name="store-cost" class="target">
<option value = '100'>100</option>
<option value = '500'>500</option>
<option value = '1500'>1500</option>
</select>
и jquery, чтобы увидеть, что выбрал пользователь
$( ".target" ).change(function() {
console.log($( this ).val());
});
и у меня есть кнопка, которая вызывает функцию jquery:
<a href="#" onclick = donateNow(100)>Donate</a>
Как мне изменить значение в функции donateNow в соответствии с пользовательской опцией?
Большое спасибо
РЕДАКТИРОВАТЬ, извините, не ясно выразился, я хотел бы изменить Я хотел бы изменить параметр функции donateNow() в соответствии с выбранной пользователем опцией
Комментарии:
1. @felix он не имел в виду изменять значение элемента select .. он хочет изменить параметр
donateNow
функции в соответствии со значением выбранного элемента …!2. Вы можете получить его внутри
function donatenow()
с помощью$( ".target" ).val()
3. @Rajaprabhu: Ах … это тоже имеет смысл.
4. @FelixKling ОП не спрашивает, как изменить выбранное значение. Они спрашивают, как извлечь его, чтобы поместить в другую функцию. Да, вопрос является дубликатом, но это не ТОТ дубликат 🙂
5. Проще говоря, вы не передаете никаких аргументов
donateNow
и вместо этого извлекаете значение внутри функции. Или, если вы действительно хотите, чтобы функция принимала аргумент, передайте значение функции. Вы уже знаете, как получить значение.
Ответ №1:
Быстрый и грязный:
<a href="#" onclick="donateNow($('.target').val())">Donate</a>
Лучшая практика:
<a href="#" onclick="donateNow()">Donate</a>
<script type="text/javascript">
function donateNow() {
var amount = $('.target').val();
//use amount
}
</script>
Комментарии:
1. что это ..? как бы скрипт работал вне тега script ..?
2. @RajaprabhuAravindasamy Зачем
donateNow(100)
вообще работать? Это именно тот путь, по которому нужно идти!3. @RajaprabhuAravindasamy: значение onclick принимает произвольный JS.
4. Я бы предложил поместить значение атрибута в
"
кавычки. Это'
не должно создавать никаких проблем, но я не уверен на 100%.5. @Scorpion да, это правда, ссылка, данная Феликсом, четко указывает на это.
Ответ №2:
Попробуйте это,
Обновление: лучший способ.
Вы можете получить значение в определении функции.
<a href="#" >Donate</a>
$( ".target" ).change(function() {
console.log($( this ).val());
});
$("a:contains('Donate')").click(function(){
donateNow($( ".target" ).val()):
});
function donateNow(selectedVal){
console.log(selectedVal);
}
Комментарии:
1. Вы изменяете каждое определение функции, если хотите использовать функцию с разными значениями?
Ответ №3:
Вы можете попробовать ниже:
<select name="store-cost" class="target">
<option value = '100'>100</option>
<option value = '500'>500</option>
<option value = '1500'>1500</option>
</select>
<a href="#" onclick = "donateNow($('.target').val())">Donate</a>
И в вашем javascript:
function donateNow(currValue)
{
alert('you donated: ' currValue);
}
Здесь вы можете проверить это в jsFiddle: