Как изменить значение при нажатии onclick

#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: