2013-05-23 2 views
0

Я хочу узнать, как использовать JavaScript (или библиотеку jQuery), чтобы перейти к URL-адресу, указанному как значение тега параметра внутри тега optgroup.Перейти к URL-адресу после выбора опции в optgroup

С простым, один на уровне выбора тегов, содержащих теги опционных, решение может быть аналогичен описанному in this post:

<FORM NAME="nav"><DIV> 
<SELECT NAME="SelectURL" onChange= 
"document.location.href= 
document.nav.SelectURL.options[document.nav.SelectURL.selectedIndex].value"> 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/jsnav.html" 
SELECTED>Please select an item: 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/"> 
Main page on HTML forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/choices.html"> 
Choices in HTML forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/tables.html"> 
Tables and forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/methods.html"> 
Form submission methods (GET and POST) 
</SELECT><DIV> 
</FORM> 

Я пытался использовать его с определенным тегом два уровня с опцией тегов внутри optgroup tags - и это не работает для меня. Я был бы признателен за помощь в адаптации этого кода.

+1

Ты должен закрыть опцию теги. – Seza

+0

Хорошая точка, @ Сеза. Кредит для кода принадлежит автору цитируемого учебника. –

ответ

2

Используйте это, чтобы сделать это, когда пользователь выбирает опцию:

$('select[name="SelectURL"]').change(function() { 
    window.location.replace($(this).val()); 
}); 

Или это, когда пользователь нажмет отправке кнопка:

$('form[name="nag"]').on('submit' function(e){ 
    e.preventDefault(); 
    window.location.replace($('select[name="SelectURL"]').val()); 
}); 

Вы также должны очистить вас HTML, как это:

<FORM NAME="nav"> 
    <DIV> 
     <SELECT NAME="SelectURL"> 
      <OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/jsnav.html" SELECTED>Please select an item:</OPTION> 
      <OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/"> Main page on HTML forms</OPTION> 
      <OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/choices.html"> Choices in HTML forms</OPTION> 
      <OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/tables.html"> Tables and forms</OPTION> 
      <OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/methods.html"> Form submission methods (GET and POST)</OPTION> 
     </SELECT> 
    <DIV> 
</FORM> 
+0

Есть ли способ открыть его в новом окне @Joe? –

+2

Вы можете использовать: 'window.open ($ (this) .val(), '_ blank');' (верхний блок кода) или 'window.open ($ ('select [name =" SelectURL "]'). val(), '_ blank'); '(второй кодовый блок) вместо' window.location.replace'. – Joe

+0

Отлично, большое спасибо, @Joe! –

0

Прежде всего избавиться от встроенного обработчика события OnChange:

<FORM NAME="nav"><DIV> 
<SELECT NAME="SelectURL"> 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/jsnav.html" 
SELECTED>Please select an item: 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/"> 
Main page on HTML forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/choices.html"> 
Choices in HTML forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/tables.html"> 
Tables and forms 
<OPTION VALUE="http://www.cs.tut.fi/~jkorpela/forms/methods.html"> 
Form submission methods (GET and POST) 
</SELECT><DIV> 
</FORM> 

Затем просто добавить слушатель события:

$(document).ready(function() 
{ 
    $('select[name=SelectURL]').change(function(v) 
    { 
    window.location.replace($(this).val()); 
    }); 
}); 
+0

Большое спасибо, @ Кирилл! –

Смежные вопросы