2016-06-21 3 views
0

Когда я выбираю google, значение кнопки отправки превращается в google.com, и я выбираю yahoo submit button значение будет изменено. Вот моя попытка.как создать динамическую функцию javascript

<script> 
     function goToNewPage() { 
      if(document.getElementById('target').value){ 
       window.open('url','_blank'); 
      } 
     } 
     </script> 
<form name="dropdown"> 
      <select name="selected" id="target" accesskey="E"> 
      <option selected>...Select...</option> 
      <option value="http://www.google.com">Google</option> 
      <option value="http://www.yahoo.com/">Yahoo</option> 
      </select> 
      <input type="button" value="Go" onclick="goToNewPage(document.dropdown.selected)"> 
     </form> 
+0

Там нет кнопки отправки в вашем коде ...? Вы хотите, чтобы текст кнопки изменялся в соответствии с тем, что вы выбрали из раскрывающегося списка (говорит текст)? Или открыть URL-адрес, взятый из выбранного раскрывающегося списка в новом окне (говорит код)? – Teemu

+0

, когда некоторые выбирают google и нажимают кнопку отправки, а затем открывают новую вкладку с ссылкой google, а когда некоторые клики yahoo открывают новую вкладку с ссылкой yahoo ... На последней строке Student

ответ

0

Вы были очень близки. Эта отредактированная версия исправляет это. (fiddle)

HTML - Добавить значение для ничего не выбрано. Удалите попытку установки URL-адреса на пути. Добавлен идентификатор кнопки, который будет использоваться для новой функции.

<form name="dropdown"> 
     <select name="selected" id="target" accesskey="E" onchange="changeText()"> 
     <option value="nothing" selected>...Select...</option> 
     <option value="http://www.google.com">Google</option> 
     <option value="http://www.yahoo.com/">Yahoo</option> 
     </select> 
     <input type="button" value="Go" id="butGo" onclick="goToNewPage()"> 
    </form> 

JS - Установить URL-адрес при вызове функции. Не помещайте URL в кавычки. Казалось бы, это строка.

function goToNewPage() { 
    url = document.getElementById('target').value; 
    //alert(url) 
     if(document.getElementById('target').value!='nothing'){ 
      window.open(url,'_blank'); 
     } 
    } 

Если вы хотите изменить текст на кнопке, сделайте следующее:

function changeText(){ 
    url = document.getElementById('target').value; 
    if (url=='http://www.google.com') { 
    document.getElementById('butGo').value = 'Google' 
    } 
    if (url=='http://www.yahoo.com/') { 
    document.getElementById('butGo').value = 'Yahoo' 
    } 
} 
+0

Да. Спасибо, босс. – Student