2011-04-15 2 views
1

У меня есть список состояний в меню опций. Я хотел бы запустить немного jquery только при выборе CA или NV. Вот что у меня есть:jquery - Условно запустить скрипт на основе опции из меню выбора

$('#state').change(function(){ var text=$('#state :selected').val(); 
$('.st').val(text);  
}); 

который я пытался (безуспешно), чтобы приспособиться к другому немного JQuery, как это:

<script type="text/javascript"> 
     $(document).ready(function() { 
     $("#state").change(function() { 
      if ($("#state option[value='CA']").attr('selected')) { 



$('#state').change(function(){ var text=$('#state :selected').val(); 
$('.st').val(text);  
}); 



      } 
     }); 
     }); 
    </script> 

Любая идея, что нужно изменить для этой работы?

ответ

1

Применение

if ($("#state").val() == "CA") 

jQuery val() будет возвращать выбранное значение из select элемента.

Вот рабочий пример: jsfiddle

EDIT: А вот тот, который очищает значение также: jsfiddle

$(function() { 
    $("#state").change(function() { 
     var state = $(this).val(); 
     $(".st").val((state == "CA") ? state : ""); 
    }) 
}); 
+0

Благодарю вас город! – Paul

+0

В настоящее время существует одна проблема: если пользователь выбирает CA, а затем возвращается и выбирает другое состояние, значение остается CA. Что мне нужно добавить, чтобы что-то еще сбросить значение? – Paul

+0

@Paul: ценность того, что остается CA? Текстовое поле? – Town

1

Вы можете попробовать:

 if ($("#state option[value='CA']:checked").length > 0) { ... } 
1

Попробуйте -

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#state").change(function() { 
     if ($("#state").val()=='CA') { 
      //do something 
     }  
     }); 
    }); 
</script> 
1

я в конечном итоге делает это, легкое редактирование кода города (для учета состояний т и иметь не пустое значение по умолчанию:

<script type="text/javascript"> $(function() { $("#state").change(function() { var state = $(this).val(); $(".st").val((state == "CA" || state == "NV") ? state : "auto"); }) }); </script>