2015-04-06 2 views
0

Я пытаюсь предупредить посетителей о минимальной сумме, и я только дошел до точки, где я могу показать предупреждение, но для всех изменений ... Дело в том, что я хочу только, чтобы показать предупреждение, когда пользователь нажимает на значение опции = 1.Как показать оповещение, если выбрано значение

Вот что у меня есть (отсутствует в пункте IF):

<script> 
    function MinPecas(quantidade) { 
     alert("MÍNIMO DE 30 PEÇAS PARA ORÇAMENTO"); 
    } 
</script> 

<select name="quantidade" id="quantidade" onchange ="MinPecas(this.form)"> 
<option value="1">0 A 30 PÇS</option> 
<option value="2">30 A 50 PÇS</option> 
<option value="3">50 A 100 PÇS</option> 
</select> 
+4

'if (value ==" 1 ") alert()' ??? – adeneo

+2

Разве не было бы смысла снимать этот вариант, если он недоступен? Это как сказать: «Хотите конфет? О, извините, у меня нет конфет ...» _ ** Редактировать: ** @Guilherme Хорошо, wink; – blex

+1

На самом деле не потому, что они могут выбрать 0 до 30 но нужно знать об этом состоянии. –

ответ

0

Это good idea применять слушателей событий из самого Javascript, в отличие от непосредственно в HTML. По этой причине используйте метод element.addEventListener(). Если вы передадите ему событие (change) function (MinPecas), он будет вызывать MinPecas всякий раз, когда изменяется значение элемента. Кроме того, переменная функции будет тогда элементом, поэтому this.value будет равна значению элемента. Вы можете получить элемент с помощью document.getElementById(), а затем добавить к нему прослушиватель событий.

<select name="quantidade" id="quantidade"> 
    <option value="1">0 A 30 PÇS</option> 
    <option value="2">30 A 50 PÇS</option> 
    <option value="3">50 A 100 PÇS</option> 
</select> 

<script> 
    function MinPecas(){ 
     if (this.value === '1'){ 
      alert("MÍNIMO DE 30 PEÇAS PARA ORÇAMENTO"); 
     } 
    } 

    document.getElementById('quantidade').addEventListener('change', MinPecas); 

</script> 

Наконец, вы хотите, чтобы убедиться, что <script> элемент после<select>, потому что если он работает заранее, то выберите тег не существует, и document.getElementById('quantidade') не сможет его найти и ничего не вернет.

Я надеюсь, что это сработает для вас.

+0

Он сработал! Спасибо огромное! –

+0

@GuilhermeAndredosSantos отлично! Возможно, вы также захотите добавить «selected =» выбранный «» ко второму тегу «' – ajndl

+0

На самом деле, у меня есть 10 параметров, и я выбрал выбранную опцию третьей. Но спасибо за подсказку! Помогли мне много ... Теперь я применим его к другим формам ... –

0

Попробуйте

$(document).ready(function(){ 
    $('[name=quantidade]').change(function(){ 
     if($(this).val() === '1'){ 
      alert(); 
     } 
    }); 
}); 

EDIT

Также для этого вам необходимо включить библиотеку jquery!

Поскольку вы хотите, чтобы предупреждение отображалось, когда элемент со значением 1 выбрано SELECT, попробуйте добавить пустую опцию в качестве первого выбора.

<option>Please select</option> 
+1

Не лучше использовать только 'this.value' вместо' $ (this) .val() '? :) – covfefe

+0

@CookieMan Это действительная оптимизация, но крошечная, которая останется незамеченной реальными пользователями. – Blazemonger

+1

Вам также необходимо использовать [делегирование событий] (http://learn.jquery.com/events/event-delegation/), так как '