2015-03-02 2 views
0

Мне нужно, чтобы форма перенаправлялась на другой URL-адрес, если какой-либо из параметров выбран отдельно. Затем покажите выбранный вариант.Переадресовать форму на другой URL-адрес на основе элемента выбора. Но не выбран после перенаправления.

Спасибо заранее

<html> 
    <head>  
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>   
    </head> 
    <body>  
     <form method='post'> 
      <select id="selectbox"> 
       <option value="index.html" selected>Home</option> 
       <option value="?hello=about" >Abut Us</option> 
       <option value="?hello=contact" >Contact Us</option> 
       <option value="?hello=blog">Blog</option> 
      </select> 
     </form> 

    <script> 
     $(function(){ 
      // bind change event to select 
      $('#selectbox').bind('change', function() { 
       var url = $(this).val(); // get selected value 
       if (url) { // require a URL 
        window.location = url; // redirect 
       } 
       return false; 
      }); 
     }); 
    </script> 
    </body> 
    </html> 
+2

Ваш код кажется прекрасным, у вас есть проблема с ним? –

+0

Когда я выбираю любую опцию, мой код перенаправляет, но не отображает выбранное имя на странице переадресации. Всегда показывать «дом». –

+0

'window.location.href = url;' –

ответ

1

Итак, если ваши URL-адреса имеют строки запроса, такие как «? Hello = about», «? Hello = xxx» и т. Д., Следующее должно работать. Отбросьте этот код сразу после метода привязки selectbox. Имейте в виду, что я не тестировал этот код.

var option = location.search.replace(/(^\?hello=[^&#]+).*?$/i, "$1"); 
$('#selectbox').val(option); 
+0

Этот код работает для меня, спасибо –

+0

Рад, что это сработало! – lshettyl

1

Просто используйте

if (url) { // require a URL 
    window.location.href = url; // redirect 
} 

Потому что в опции дорожит вы не передаете полный URL.

+0

Настройка 'window.location' отлично. ОП разъяснил, что проблема заключается в том, что значение выбора изменяется после перенаправления. –

+0

Хорошо @ Рори. Для запроса OP я предлагаю ему не перенаправлять на другой URL-адрес, просто установите форму Action в другой файл, который OP хочет показать после перенаправления, а затем отобразить выбранные значения в $ _POST. Я полагаю, что он будет работать вместо перенаправления формы – Vineet

0

Попробуйте это:

$(function(){ 
    // bind change event to select 
    $('#selectbox').bind('change', function() { 
     var url = $(this).val(); // get selected value 
     if (url) { // require a URL 
      $('form').attr('action', url).submit(); 
     } 
     return false; 
    }); 
}); 
0

Я предполагаю, что вы хотите форму, чтобы сделать больше, чем указано в вашем вопросе, в противном случае это просто основной скачок навигации. Если у вас есть больше данных для передачи, то window.location не будет публиковать эти данные из формы. Вам необходимо сделать следующее:

$(function(){ 
    // bind change event to select 
    $('#selectbox').bind('change', function() { 
     var url = $(this).val(); // get selected value 
     if (url) { 
      // set the 'action' attribute to the 
      // value of the url var and submit the form. 
      $('form').attr('action', url).submit(); 
     } 
     return false; 
    }); 

});

+0

Я пробовал это, но не работал. Когда я выбираю любую опцию, мой код перенаправляет. Но не отображать выбранное имя на странице переадресации. Всегда показывать «home» –

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